“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的方法有问题。不知是否有人知道原因呢?

随机日志

  • 快速创建ssl 的key
  • 西安印象
  • 使用lvm备份快照mysql数据库
  • 清理了系统无用的包
  • 又买新手机
  • Leave a Reply