Điểm:1

Các lệnh Bash Script bên trong một chương trình

lá cờ gq

Xin thứ lỗi nếu điều này quá đơn giản đối với bạn, nhưng tôi thực sự đã tìm kiếm trước khi đăng câu hỏi này. Tôi đang cố gắng tạo tập lệnh bash đầu tiên để tự động kết nối trên vpn softether của mình. Để kết nối thủ công, tôi làm theo các bước sau;

sudo ./vpnclient bắt đầu
sudo ./vpncmd

sau đó nó hỏi tôi một câu hỏi lựa chọn từ 1 đến 3, tôi chọn 2 và nhấn enter. Sau đó, nó hỏi tôi một cái gì đó khác và tôi chỉ cần nhấn enter. Sau đó;

Kết nối tài khoản ofis
lối ra
Sudo dhclient vpn_vpn_se
Sudo ip route thêm X.X.X.X/32 qua 192.168.1.1
lối ra

Bây giờ tôi đây là kịch bản nghiệp dư của mình nhưng tôi đoán có điều gì đó không ổn vì nó đến phần mà tôi phải chọn một tùy chọn từ 1 đến 3 và nó không làm gì sau phần đó.

#!/bin/bash
cd /home/burock/vpnclient
ngủ 1
sudo ./vpnclient bắt đầu
ngủ 1
sudo ./vpncmd
ngủ 1
printf "2\n"
ngủ 1
inf "\n"
ngủ 1
printf "Kết nối tài khoản ofis\n"
ngủ 1
lối ra
Sudo dhclient vpn_vpn_se
ngủ 1
Sudo ip route thêm 46.1.131.30/32 qua 192.168.1.1
ngủ 1
lối ra

Ông có thể giúp tôi không? Tôi đoán nó sẽ không gõ "2" và nhấn enter vì nó nằm dưới lệnh vpncmd. Hoặc tôi đang làm sai tất cả... Tôi cũng đã cố gắng tạm dừng 1 giây giữa mỗi lệnh. Tôi đang sử dụng Lubfox btw, nếu nó quan trọng. Cảm ơn trước.

lá cờ ar
Bạn đang sử dụng phiên bản Lubuntu nào?
Điểm:2
lá cờ hr

Khi bạn chạy một lệnh như sudo ./vpncmd, điều khiển không trở lại tập lệnh của bạn cho đến khi lệnh thoát (hoặc tự chuyển sang nền). Chỉ tại thời điểm đó làm của bạn bản inf các lệnh được thực thi, gửi đầu ra của chúng đến thiết bị đầu cuối như bình thường.

Thay vào đó, bạn có thể thử một cái gì đó như

{ ngủ 1
  printf "2\n"
  ngủ 1
  inf "\n"
  ngủ 1
  printf "Kết nối tài khoản ofis\n"
} | sudo ./vpncmd

hoặc (nếu ngủs không thực sự cần thiết) chỉ

printf '%s\n' 2 "" "AccountConnect ofis" | sudo ./vpncmd

v.v., nhưng nếu điều đó không thành công, bạn có thể cần viết kịch bản cho phiên tương tác bằng nội dung nào đó như chờ đợi hoặc tự mong đợi

lemnlover avatar
lá cờ gq
Ngài là một huyền thoại! Cảm ơn bạn rất nhiều, những dấu ngoặc nhọn và đường ống đó đã làm nên điều kỳ diệu! Bây giờ tôi biết rằng bash chỉ có thể điều khiển thiết bị đầu cuối chứ không thể điều khiển ứng dụng trừ khi chúng tôi sử dụng các dấu ngoặc và đường ống đó!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.