这是一个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
,但得到了相同的结果。我不知道造成这种情况的原因。
感谢任何帮助。
答案 0 :(得分:4)
您正在覆盖PATH变量而不是追加到它我相信。您应该附加到PATH变量。