linux - awk 在某些命令后不被识别

标签 linux bash shell awk

这是一个 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 变量而不是附加到它。您应该附加到 PATH 变量。

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

相关文章:

ruby-on-rails - 我可以创建一个有参数的别名吗?

git - 如何确定git中的最后一个 merge 分支?

bash - 你如何结合 2 awk 输出

linux - 如何在shell中提取数字并分配给变量

linux shell 标题大小写

c - 独立于汇编操作系统的原子比较和交换

c - 为什么 select() 在第一次超时后总是返回 0

Centos6上的Ruby安装问题

bash - 如何在单列中使用 "sed"

php - start/B 不启动任务