这个 bash 脚本有什么问题?

这个 bash 脚本有什么问题?

由于某种原因,此脚本(在 RHEL v6.9 上运行)仅处理 host_file 中的第一行

#!/bin/bash

process()
{
 ssh $host ls
}

while IFS= read -r host
do
  echo "Running $host"
  process
  echo "DONE $host"
done < host_file
#-------End of Script-----------------

$ cat host_file
server1
server2

答案1

ssh 将吞掉标准输入的其余部分。对 while-read 循环使用不同的文件描述符:

while IFS= read -u4 -r host
do
  echo "Running $host"
  process
  echo "DONE $host"
done 4< host_file

相关内容