Bash 找不到Sed命令

Bash 找不到Sed命令,bash,shell,Bash,Shell,我有以下代码: if [ -d "$PATH" ]; then ABSPATH=$( cd "`echo "$1" | sed 's/[^/]*$//'`";pwd) fi 当我运行它时,我得到了这个sed:command-not-found。我放在这个“if”博客中的任何命令都会写入这个消息,XXX:command-not-found。我不知道为什么。我的脚本中的其他地方有完全相同的代码,在那里没有问题。您的程序*片段的性质意味着您刚刚覆盖了路径路径非常重要,它让shell知道在哪里可以找到

我有以下代码:

if [ -d "$PATH" ]; then
ABSPATH=$( cd "`echo "$1" | sed 's/[^/]*$//'`";pwd)
fi

当我运行它时,我得到了这个
sed:command-not-found
。我放在这个“if”博客中的任何命令都会写入这个消息,XXX:command-not-found。我不知道为什么。我的脚本中的其他地方有完全相同的代码,在那里没有问题。

您的程序*片段的性质意味着您刚刚覆盖了
路径<代码>路径
非常重要,它让shell知道在哪里可以找到命令…像
sed这样的命令
。如果覆盖它,将找不到sed

改名;即使是小写的
path
也可以


*我很有信心您重写了PATH,因为PATH不应该是一个目录——它应该是一个以冒号分隔的目录列表。如果
[-d$PATH]
为真,则表示您对路径有非常严格的上下文限制,或者更可能的是,您已经覆盖了它。

em。。。也许你可以解释一下你想做什么。因为我不确定
-d“$PATH”
和您的
ABSPATH
是否符合您的要求。可能有一些上下文代码引入了这个问题。