Ssh
為什麼“頭”掛起而不終止?
我有一個 shell 腳本,它必須在遠端主機上找到最新的文件。我有一點:
ssh -q $HOSTNAME -t ls -t -1 /path/to/somewhere/ | head -n 1
它列印第一行,然後等待並且不終止。
但是,如果我刪除
| head -n 1
,那麼它將按順序列印所有文件,然後定期終止並將控制流返回到我的終端。所以 SSH 命令部分可以正常終止,但不能正常終止。這是怎麼回事?我如何讓頭部工作?
它掛起,因為它沒有得到任何輸入。嘗試只做 head -n 1 。
這將確保管道到頭部將發生在偽 tty
ssh -q $HOSTNAME -t "ls -t -1 /path/to/somewhere/ | head -n 1"
我不得不承認,在 Debian Squeeze 和 Ubuntu server 10.4 中我無法重現這一點。
注意提供更多資訊,例如沒有“-q”、發行版等。
怎麼樣
ssh -q $HOSTNAME -t "ls -t -1 /path/to/somewhere/" | head -n 1