while read line 嵌套 if 后 if内的部分命令无法执行 怎么办

时间:2021-09-24 18:52:53
环境ubuntu 16.04
在编写shell脚本时,想逐行取出某文件内文本进行判断,之后执行操作
while read line 嵌套 if 后 if 内的 除了echo ls cat 等基础命令外,其他命令无法执行
cat a.txt | while read Banip
do
if [ "ip"x = "ip"x ] ;
then
    #who am i      //err
    ls
fi
done

2 个解决方案

#1


网上查了也没有思路,求各路大神

#2


代码省略了,所以不知道具体是啥问题。
是不是在while read banip 的循环中又使用了read? 
read命令的缓冲区是共用的,不能嵌套调用。

另外的话,既然是其他命令不好用,重点看下是不是中间某步骤失手改了环境变量呗。 PATH啥的……

#1


网上查了也没有思路,求各路大神

#2


代码省略了,所以不知道具体是啥问题。
是不是在while read banip 的循环中又使用了read? 
read命令的缓冲区是共用的,不能嵌套调用。

另外的话,既然是其他命令不好用,重点看下是不是中间某步骤失手改了环境变量呗。 PATH啥的……