Puncte:1

Comenzile Bash Script în interiorul unui program

drapel gq

Vă rog să mă scuzați dacă acest lucru este prea simplu pentru dvs., dar chiar am căutat înainte de a posta această întrebare. Încerc să creez primul meu script bash pentru conectarea automată pe VPN-ul meu softether. Pentru a conecta manual, urmez acești pași;

sudo ./vpnclient start
sudo ./vpncmd

apoi îmi pune o întrebare de selecții de la 1 la 3, aleg 2 și apăs pe enter. Apoi mă întreabă altceva și doar apăs pe Enter. Atunci;

AccountConnect ofis
Ieșire
sudo dhclient vpn_vpn_se
sudo ip route add X.X.X.X/32 prin 192.168.1.1
Ieșire

Acum, acesta este scenariul meu de amator, dar cred că ceva nu este în regulă, deoarece vine la o parte în care ar trebui să aleg o opțiune de la 1 la 3 și nu face nimic după acea parte.

#!/bin/bash
cd /home/burock/vpnclient
somn 1
sudo ./vpnclient start
somn 1
sudo ./vpncmd
somn 1
printf "2\n"
somn 1
printf "\n"
somn 1
printf „AccountConnect ofis\n”
somn 1
Ieșire
sudo dhclient vpn_vpn_se
somn 1
sudo ip route add 46.1.131.30/32 prin 192.168.1.1
somn 1
Ieșire

M-ai putea ajuta? Cred că nu va tasta „2” și nu va apăsa enter, deoarece este sub comanda vpncmd. Sau fac totul greșit... Am încercat și să fac o pauză de 1 secundă între fiecare comandă. Folosesc Lubuntu, dacă contează. Mulțumesc anticipat.

drapel ar
Ce versiune de Lubuntu folosești?
Puncte:2
drapel hr

Odată ce rulați o comandă de genul sudo ./vpncmd, controlul nu revine la script-ul dvs. până când comanda nu iese (sau trece în fundal). Abia în acel moment faci ta printf comenzile sunt executate, trimițându-și ieșirea la terminal ca de obicei.

Puteți încerca în schimb ceva de genul

{ somn 1
  printf "2\n"
  somn 1
  printf "\n"
  somn 1
  printf „AccountConnect ofis\n”
} | sudo ./vpncmd

sau (dacă dorminu sunt strict necesare) doar

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

și așa mai departe, dar dacă nu reușește, poate fi necesar să scrieți sesiunea interactivă cu ceva de genul aştepta sau așteptare automată

lemnlover avatar
drapel gq
Domnule sunteti o legenda! Mulțumesc frumos, parantezele și țeava alea au făcut minuni! Acum știu că bash poate controla doar terminalul, dar nu și aplicația, dacă nu folosim acele paranteze și conducte!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.