声明变量后执行时默认“未找到命令”

声明变量后执行时默认“未找到命令”

为什么下面的代码不起作用?

#!/bin/sh
PATH=$PWD/Info
defaults read $PATH

每次执行它我都会得到

./script:第 3 行:默认值:未找到命令

一旦我在一行中完成它就可以工作

defaults read $PWD/Info

这样就好了。我只是好奇而已。

答案1

因为您正在更改$PATH,这是一个特殊变量。 shell 使用 PATH 来搜索可执行程序。defaults可能是其中之一,但在从 PATH 中删除其文件夹后,shell 无法再执行它。

答案2

添加到路径而不是替换它:

PATH=$PWD/Info:$PATH

相关内容