Bash 无法从脚本运行命令:找不到 mkdir 命令

Nap*_*ake 1 cd-command shell-script mkdir

我有单独的 bash 任务脚本。这是损坏的一个:

#!/bin/bash
PATH=/home/name/
mkdir $PATH
cd $PATH && echo "done."
exit 0
Run Code Online (Sandbox Code Playgroud)

今天它坏了,第一次它根本不想运行 cd,而是创建了目录。第二次它只是说“找不到 mkdir 命令”。完全使用分号运行此命令可以正常工作。什么情况?

Wil*_*ard 6

PATH是环境变量。它是您的 shell 用来查找将要运行的命令的内容。更准确地说,PATH环境变量包含一个以冒号分隔的目录名称列表,按顺序搜索具有您在键入命令时指定的名称的可执行文件。(当然,除非您键入的命令是 shell 内置命令、别名或函数。)

当您PATH在脚本中设置时,您是在用同名的 shell 变量“屏蔽”环境变量的值。

从中得出的结论是不要将所有大写名称用于常规 shell 变量。

由于您不打算使用环境变量,因此只需使用小写的变量名称。

另见: