Zwykle użytkownik watch
linuksa narzędzie do powtarzania wyjścia polecenia co n sekund, jak wwatch df -h /some_volume/
Ale wydaje mi się, że nie jestem w stanie korzystać watch
z szeregu poleceń takich jak:
$ watch ls -ltr|tail -n 1
Jeśli to zrobię, watch
to naprawdę oglądam ls -ltr
i przekazuję wyjście, do tail -n 1
którego nic nie wyprowadza.
Jeśli spróbuję:
$ watch (ls -ltr|tail -n 1)
dostaję
$ watch: syntax error near unexpected token `ls'
I którykolwiek z poniższych przypadków zawodzi z jakiegoś powodu:
$ watch <(ls -ltr|tail -n 1)
$ watch < <(ls -ltr|tail -n 1)
$ watch $(ls -ltr|tail -n 1)
$ watch `ls -ltr|tail -n 1)`
I na koniec, jeśli to zrobisz:
$ watch echo $(ls -ltr|tail -n 1)
Nie widzę żadnych zmian w danych wyjściowych w danym przedziale czasu, ponieważ polecenie wewnątrz $()
jest uruchamiane tylko raz, a wynikowy ciąg wyjściowy jest zawsze drukowany („oglądany”) jako literał.
Jak więc sprawić, by watch
polecenie działało z szeregiem poleceń [innym niż umieszczanie ich w skrypcie]?
man watch
i przewiń w dół do przykładów ...