这是一个MWE:
#!/bin/bash
INFILE=$1
echo `echo $INFILE | awk '{print(substr($0,8,3))}'`
PATH=${INFILE%/*}
echo `echo $INFILE | awk '{print(substr($0,8,3))}'`
exit
显然第一个
awk
命令运行良好,但在第二个命令中bash
不再识别awk
!这就是我运行它的原因(假设
f_mwe.sh
是文件名):$ ./f_mwe.sh /home/something/path/this_is_the_name.txt
ome
./f_mwe.sh: line 31: awk: command not found
$
我在开始时也尝试过定义
/bin/sh
和ksh
,但得到了相同的结果。我不知道是什么引起的。如有任何帮助,我们将不胜感激。
最佳答案
您正在覆盖路径变量,而不是附加到它,我相信。您应该追加到path变量。
关于linux - 某些命令后无法识别awk,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31161378/