找不到sed命令

syk*_*tch 2 bash shell

我有以下代码:

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

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

koj*_*iro 7

程序片段的性质意味着您刚刚覆盖PATHPATH是一个重要的环境变量,它使外壳程序知道在哪里可以找到命令……命令,例如sed。如果您覆盖它,sed将找不到。

使用其他名称;甚至小写path也可以。

*我非常有信心您改写了PATH,因为PATH不应是目录,而应是用冒号分隔的目录列表。如果[ -d $PATH ]为true,则意味着您对PATH具有非常严格的上下文,或者很可能已覆盖了它。