bash while循环可以';不能读多行

bash while循环可以';不能读多行,bash,while-loop,Bash,While Loop,我在while loop read line上遇到了一个问题。 该脚本可以在我的ubuntu 18.04上正常运行,但在14.04上不能正常工作。 下面是我的代码示例: while IFS= read -r line do [[ ${line} = \#* ]] && continue; #I use the "A|B|C|D|E" as input of my next command Info=`sshpass -p $A ssh $B@$C "ca

我在while loop read line上遇到了一个问题。 该脚本可以在我的ubuntu 18.04上正常运行,但在14.04上不能正常工作。 下面是我的代码示例:

while IFS= read -r line
do 
    [[ ${line} = \#* ]] && continue;
    #I use the "A|B|C|D|E" as input of my next command
    Info=`sshpass -p $A ssh $B@$C "cat somefile.text" 2>/dev/null`
done < myfile.txt
我检查了每行的末尾,有一个“$”。 调试脚本时,我发现它可以正确地读取以“#”开头的行,并继续执行下一行。在读取不带“#”的第一行之前,它开始处理,但在处理“A | B | C | D | E”之后,它不会读取下一行。 调试如下所示,然后它完成了脚本

+ IFS=
+ read -r line

在这里做些什么
很重要——如果循环体使用stdin,则下一个
read
命令将不再提供所使用的内容。始终确保您的问题包含正确的代码,也就是说,您可以测试最短的代码,以便在不做任何更改的情况下单独运行时实际导致相同的错误。有关显示代码(添加了一个简单的
echo
以代替占位符)工作的示例,请参阅。在我们帮助您解决问题之前,您需要提供一个完整的示例,我们可以创建它。我已经准备好了哦。。。非常感谢,我找到了原因,因为我使用“A | B | C | D | E”中的信息登录到目标服务器以获取信息。基本上,“在这里做点什么”就是登录服务器获取信息,我使用ssh。。。。但为什么这会干扰输入文件的while循环读取行。。。
+ IFS=
+ read -r line