运行此脚本时:
#!/bin/sh -ex
if [[ $# -ne 1 ]]; then
echo "./import-public-ssh-key.sh <absolute path to public key>"
exit 1;
fi
PATH=$1
KEY=$(basename ${PATH})
我得到:
./import-public-ssh-key.sh: line 9: basename: command not found
在没有子外壳basename
的情况下有效:
$ basename /Users/mles/.ssh/id_rsa.pub
id_rsa.pub
为什么basename
在子Shell中不起作用?如果相关,我正在使用Mac。
答案 0 :(得分:1)
您重置PATH。不要那样做Shell搜索PATH中列出的所有目录,并且您已对其进行了更改,以使PATH不再包含包含基名的目录。