我在shell脚本(BASH)中使用“while”循环来读取文件的行(一个接一个) - “幸运的是”,它不工作文件中有行的次数。
这是摘要: $ cat inputfile.txt
1
2
3
4
5
现在,shell 脚本内容非常简单,如下所示:
#!/bin/bash
while read line
do
echo $line ----------;
done < inputfile.txt;
上面的脚本代码工作得很好..... :)。它显示了 inputfile.txt 中的所有 5 行。
现在,我有另一个脚本,其代码如下:
#!/bin/bash
while read line
do
echo $line ----------;
somevariable="$(ssh sshuser@sshserver "hostname")";
echo $somevariable;
done < inputfile.txt;
现在,在这个脚本中,while 循环只显示“1 ---------”行,并在显示“$somevariable”的有效值后退出循环
任何想法,我在这里缺少什么。我没有尝试使用一些数字 N < inputfile.txt 并使用 done <&N 方式(即通过使用 N 描述符指向的文件来更改输入重定向器)....但我很好奇为什么这个简单的脚本不是为 N 号工作。有时,当我刚刚添加一个简单的变量声明时,它在子 shell 中执行“ssh”操作。
谢谢。