Shell 使用getopts的正确方法
执行以下脚本会导致mkdir命令出错 错误:Shell 使用getopts的正确方法,shell,getopts,Shell,Getopts,执行以下脚本会导致mkdir命令出错 错误: ./test.sh: line 15: mkdir: command not found 这个脚本出了什么问题?您的问题实际上与getopts无关 问题是第一行: PATH=/root 或者,如果已执行,则此行: PATH=/home 这将命令的搜索路径设置为仅/root或/home目录。(通常这两个目录都不包含任何命令) 设置$PATH会丢弃上一个值mkdir可能在/bin中,但由于/bin不再在$PATH中,shell无法找到它 在geto
./test.sh: line 15: mkdir: command not found
这个脚本出了什么问题?您的问题实际上与
getopts
无关
问题是第一行:
PATH=/root
或者,如果已执行,则此行:
PATH=/home
这将命令的搜索路径设置为仅/root
或/home
目录。(通常这两个目录都不包含任何命令)
设置$PATH
会丢弃上一个值mkdir
可能在/bin
中,但由于/bin
不再在$PATH
中,shell无法找到它
在getopts
命令上不会出现错误,因为它内置在您正在使用的shell中
如果要将/root
添加到$PATH
,请使用:
PATH="/root:$PATH"
或
但是脚本中似乎没有任何内容依赖于在$PATH
中具有/root
。首先,您为什么要执行PATH=/root
?如果试图将当前工作目录设置为/root
或/home
,则需要chdir
命令
PATH="/root:$PATH"
PATH="$PATH:/root"