在bash脚本中找不到mkdir命令

MLS*_*LSC 13 bash mkdir

我不知道为什么我在运行这个简单的脚本时会出错:

#!/bin/bash

read -p "Please enter directory name: " DIR
read -p "Please enter the path: " PATH
mkdir -p "$PATH/$DIR"
Run Code Online (Sandbox Code Playgroud)
line 7: mkdir: command not found
Run Code Online (Sandbox Code Playgroud)

Bar*_*mar 37

不要使用变量PATH.此变量包含用于搜索可执行程序的目录列表.由于您要替换它,脚本无法再找到该mkdir程序.

通常,避免使用全部大写的变量,这些变量通常用作shell或其他程序的参数.


cda*_*rke 5

变量PATH是一个重要的环境变量 - 它是程序(如mkdir)的找到方式,您正在覆盖它。你不应该这样做,但如果你必须这样做:

/bin/mkdir -p "$PATH/$DIR"
Run Code Online (Sandbox Code Playgroud)

但老实说,不要使用大写!Bash 中有大量的保留变量或特殊变量,如果您不能全部记住它们,那么请记住,除了一个之外的所有变量都是大写的。Bash 中的变量区分大小写,就像在所有合理的编程语言中一样。