读取命令执行时的外壳

时间:2020-03-12 01:47:02

标签: bash

请帮助我找出此问题的解决方法

 #!bin/bash 
 while read line; do

  if [[ $line =~ "some thing match on line"]] ; then
    echo  "---->   $line"
    NAME=$(echo "$line" | awk '{print $2}' | cut -d"=" -f2)
    PATH=$(echo "$line" | awk '{print $3}' | cut -d"=" -f2)  
  fi
done < "pattern.xml"
#output
##line 6: awk: command not found
##line 6: cut: command not found

为什么在while循环内不执行此命令
预先感谢

1 个答案:

答案 0 :(得分:1)

您要在此处设置declare variable $id as xs:string external;环境变量:

PATH

该变量是用于查找程序的搜索路径。因此,在循环的第一次迭代之后,您将无法找到程序,因为它不再包含诸如PATH=$(echo "$line" | awk '{print $3}' | cut -d"=" -f2) 之类的目录。

使用其他变量名。通常,请避免在脚本中使用所有大写变量,因为按惯例,这是为环境变量保留的。