“while”的“read”方法有什么问题?

本文可自由转载,但请遵循“署名-非商业用途-保持一致”的创作共用协议。 永久链接:JoeCen's 小猫窝
-----------------------------

本来我在shell编程里习惯用while来进行循环,现在看来要改一改了。

这两天写一个脚本的时候,发现while不能与ssh结合使用:

比如:

-------------------------------------------------------------------------
#!/bin/sh
while read HOST
do
ssh -l joecen -oStrictHostKeyChecking=no $HOST df
done < host

-------------------------------------------------------------------------
host文件是IP,每一行一个IP。

运行脚本时发现,第一个ssh正常执行后脚本自动退出(停止在read HOST上)。

而改为使用“for”的话,一切正常:

-------------------------------------------------------------------------
#!/bin/sh
for HOST in $(
<
host)
do
ssh -p -l joecen -oStrictHostKeyChecking=no $HOST df
done

-------------------------------------------------------------------------
听同事说,可能是“while”使用的read的方法有问题。不知是否有人知道原因呢?

随机日志

  • 在windows安装tracks的失败记录
  • 尽量不要用旅行充电器来给手机充电
  • vnc远程桌面控制的安装与调试
  • "apt-get install" error, no public key 的解决方法
  • 当当网如何留住顾客?
  • Leave a Reply