这是一个 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 变量而不是附加到它。您应该附加到 PATH 变量。
关于linux - awk 在某些命令后不被识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31161378/