Strona 1 z 1
[cmd] wiele komend w jednej linii... przypadek szczególny
: 05 paź 2013, 16:36
autor: bazz
Hej,
mam pewien problem:
Gdy chcemy w linii komend wykonać kilka komend naraz oddzielamy je średnikiem albo &&, np.:
cmd1;cmd2;cmd3
Przypuśćmy że cmd1 generuje pytanie z systemu np. "Are you sure? [y/N]:"
cmd2 jest odpowiedzią.
W tym wypadku ani średniki ani && nie działają.
Co zrobić żeby cmd2 była wypisywana jako odpowiedź na to pytanie?
Re: [cmd] wiele komend w jednej linii... przypadek szczególny
: 05 paź 2013, 16:42
autor: ethanak
Niestety - temat zbyt obszerny aby go omawiać w jednym poście.
Tak przy okazji - użyłbym tu czegoś innego niż shell (Pythona, Perla, zależy co będzie łatwiejsze) - w shellu się zakopiesz.
Re: [cmd] wiele komend w jednej linii... przypadek szczególny
: 10 paź 2013, 21:23
autor: beluosus
Najprościej takim oto przekierowaniem (gdzie cmd1 to "read", a cmd2 to "date"):
Kod: Zaznacz cały
# tekst:
read TMP <<< test ; echo $TMP
# polecenie:
read TMP <<< $(date) ; echo $TMP
Aczkolwiek nie zawsze musi to zadziałać - zależy to od sposobu pobierania danych od użytkownika.
Re: [cmd] wiele komend w jednej linii... przypadek szczególny
: 11 paź 2013, 11:02
autor: Spojler
Ja bym proponował zrobić skrypt w bashu.
Możesz użyć czegoś takiego:
wynik=$(komenda)
zmienna $wynik przechowuje wynik wyświetlany po użyciu komendy, można do komendy dodać grep, last, head i innych przesiewaczy tekstu i możesz wykorzystać tą zmienną do innych celów:
echo $wynik
lub
nowa_komenda $wynik - tutaj wynik poprzedniej komendy wykorzystujemy jako opcja do nowej komendy.
lub
cat /var/log/daemon.log |grep $wynik - tutaj $wynik służy do odsiewu pliku tekstowego w tym przypadku plik logów