Mam około 20 poleceń i muszę to wszystko wysłać do powłoki Unixa i skopiować wynik, ale nie wiem, jak to zrobić.
Nie jestem pewien, jaką mam powłokę, ponieważ jest to mały program podłączony do zarządzania siecią mobilną, a dzięki temu małemu programowi mamy dostęp do wysyłania poleceń przez linię i otrzymywania wyników przez krzyk, dlatego nie mogę używać skryptów dla wysyłanie poleceń.
Polecenie 1 - Połącz się z serwerem.
Poczekaj, aż polecenie 1 zakończy się
Polecenie 2 - Zaktualizuj wszystkie informacje od zakończenia serwera 1
Czekać.
Polecenie 3 . Uzyskaj parametr.
... i więcej takich poleceń.
I starał się cmd1 | cmd2 | cmd3
i cmd1 & cmd2 & cmd3
icmd1;cmd2
Problem polega na tym, że jest cmd1
podłączony do RNC (element sieci) i zajmuje około 15 sekund, po czym cmd2
ma sens. ale po prostu pracuj dla pierwszego cmd. Wszelkie wskazówki, jak to uruchomić?
źródło
&&
między poleceniami.Odpowiedzi:
Zwykle po prostu
cmd1;cmd2;cmd3;cmd4
(jeśli chcesz napisać go w jednym wierszu) lub używając,cmd1 && cmd2 && cmd3 && cmd4
jeśli nie chcesz uruchamiać cmd3, gdy cmd2 zawiedzie.Alternatywnie
;
możesz napisać jedno polecenie w wierszu.Jeśli chcesz, aby polecenia działały równolegle w tle, możesz także użyć
Każdą z tych metod można również umieścić w skrypcie powłoki. Różnica między tym, co piszesz w skrypcie powłoki, a tym, co piszesz w samej powłoce, jest niewielka.
źródło
cmd1;cmd2
przypadku (lubcmd1 && cmd2
w tym przypadku) cmd2 nie uruchomi się, dopóki cmd1 nie wyjdzie (a zatem prawdopodobnie zakończy). Więc nie powinno być żadnego problemu - przeformułuj swoje pytanie lub podaj przykład, który ludzie mogą reprodukować.Możesz zajrzeć
sleep
, jeśli twoje środowisko na to pozwala. Pełna sekwencja byłaby wtedy podobnacmd1 && sleep 10s && cmd2
.Oto odpowiednia strona podręcznika dla snu .
źródło
Wystarczy użyć skryptu, pliku zawierającego polecenia do uruchamiania jeden po drugim, na przykład:
Pierwszy wiersz (shebang) mówi o uruchomieniu następujących poleceń za pomocą
/bin/sh
, uczyń plik wykonywalnym (chmod u+x your-little-script
), a następnie możesz go uruchomić./my-little-script
. W ten sposób nie opuścisz kroku ;-)Przeczytaj instrukcję powłoki, zapewnia ona pełny język programowania. Sprawdź,
bash(1)
czy to jest dostępne, czy też skorupa Kornaksh(1)
. Oferują wiele przydatnych funkcji do kontrolowania przepływu kontroli w skryptach (lub interaktywnie, jeśli o to chodzi).źródło
source your-little-script
(lub. your-little-script
w skrócie).ssh
aPuTTY
może?Możesz uruchomić coś takiego
expect
na komputerze lokalnym, aby wysłaćcmd1
i poczekać, aż zakończy się przed wydaniemcmd2
itp. Musisz znaleźć rozsądny czas oczekiwania lub konkretne wyjście wskazujące, że polecenie zostało wykonane, aby napisać właściwy Spodziewaj się skryptu.Oczywiście,
cmd1; cmd2; cmd3; cmd4
w jednym poleceniu wykona polecenia kolejno, jeden po drugim.źródło