这是一个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/shksh,但得到了相同的结果。我不知道是什么引起的。
如有任何帮助,我们将不胜感激。

最佳答案

您正在覆盖路径变量,而不是附加到它,我相信。您应该追加到path变量。

关于linux - 某些命令后无法识别awk,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31161378/

10-16 05:25