我有一个shell脚本,必须find远程主机上的最新文件。 我有这个位:
ssh -q $HOSTNAME -t ls -t -1 /path/to/somewhere/ | head -n 1
它打印第一行,然后等待并不终止。
但是,如果我删除| head -n 1 打印| head -n 1 ,然后按顺序打印所有文件,然后定期终止并将控制stream程返回到我的terminal。 所以SSH命令部分正在终止,但不是头部分。 这是怎么回事? 我怎样才能让头脑工作?
它挂起,因为它没有得到任何input。 尝试只是头n – 1。
这将确保pipe道到头将发生在伪tty
ssh -q $HOSTNAME -t "ls -t -1 /path/to/somewhere/ | head -n 1"
我不得不承认,在Debian Squeeze和Ubuntu服务器10.4中,我无法重现这一点。
关心提供更多的信息,如没有“-q”,发行版等。
怎么样
ssh -q $HOSTNAME -t "ls -t -1 /path/to/somewhere/" | head -n 1
为什么不尝试这种方式:
ssh -q $HOSTNAME -t ls -tr -1 /some/path | tail -n 1
这将让你知道,如果头指令是错误的。 你以前的命令似乎在我的机器上正常工作。 奇怪的东西。