Saya mencoba menonton sejumlah file di /tmp/direktori saya . Untuk ini saya pikir perintah ini akan berhasil:
watch sh -c 'ls /tmp/|wc -l'
Tetapi tampaknya berfungsi seolah-olah lstidak punya argumen. Yaitu, saya masuk ~, dan saya mendapatkan jumlah file di sana, bukan /tmp/. Saya menemukan solusi, yang tampaknya berhasil:
watch sh -c 'ls\ /tmp/|wc -l'
Tetapi mengapa saya harus lari dari ruang antara lsdan /tmp/? Bagaimana perintah diubah oleh watchsehingga lsoutput diumpankan wc, tetapi /tmp/tidak diteruskan sebagai argumen ls?
watchsalah. Perintah yang Anda berikan watchpada gilirannya diumpankan watchke sh -c, jadi Anda sebenarnya melakukan sh -cdua kali.
/tmpArgumen untuk sh, dalam hal ini, bukan argumen untuk ls.
watch "sh -c 'ls /tmp | wc -l'"melakukan perintah ini harus mendapatkan efek yang diinginkan. Ini bukan kesalahan jam tangan, cobalahsh -c ls /tmpdan Anda akan mendapatkan direktori rumah Anda (tapi saya tidak tahu mengapa ...)