"basename" 用于子 shell returns "command not found"
"basename" used in subshell returns "command not found"
当运行这个脚本:
#!/bin/sh -ex
if [[ $# -ne 1 ]]; then
echo "./import-public-ssh-key.sh <absolute path to public key>"
exit 1;
fi
PATH=
KEY=$(basename ${PATH})
我得到:
./import-public-ssh-key.sh: line 9: basename: command not found
没有子 shell basename
工作:
$ basename /Users/mles/.ssh/id_rsa.pub
id_rsa.pub
为什么 basename
在子 shell 中不起作用?如果相关,我正在 mac。
您重置了 PATH。不要那样做。 shell 搜索 PATH 中列出的所有目录,并且您已更改它以便 PATH 不再包含包含 basename 的目录。
当运行这个脚本:
#!/bin/sh -ex
if [[ $# -ne 1 ]]; then
echo "./import-public-ssh-key.sh <absolute path to public key>"
exit 1;
fi
PATH=
KEY=$(basename ${PATH})
我得到:
./import-public-ssh-key.sh: line 9: basename: command not found
没有子 shell basename
工作:
$ basename /Users/mles/.ssh/id_rsa.pub
id_rsa.pub
为什么 basename
在子 shell 中不起作用?如果相关,我正在 mac。
您重置了 PATH。不要那样做。 shell 搜索 PATH 中列出的所有目录,并且您已更改它以便 PATH 不再包含包含 basename 的目录。