在命令行中,我将一个目录附加到我的 PATH 中而不导出它:
$ PATH='$PATH:/home/user/anaconda3/bin'
由于某种原因,这已经覆盖了 PATH 环境变量,但我不确定为什么会发生这种情况。上面的 PATH 仍然是一个冒号分隔的目录列表,就像它应该的那样,那么问题是什么?我通常会在 PATH 中添加一个新目录,但这次我测试了附加它,这导致了意外的结果。
现在,每当我尝试最简单的命令时,ls
都会出现此错误(我期望),然后出现提示,要求我安装我键入的命令:
bash: sed: command not found...
另外,由于我没有实际导出 PATH,因此后续命令不应该继承上述 PATH 变量的环境,那么是什么导致了它发生呢?
我知道我可以打开一个新的终端窗口来修复它,但我有兴趣知道为什么会发生这种情况?
答案1
单引号抑制参数扩展。
$ foo=42
$ echo '$foo' "$foo"
$foo 42