代码之家  ›  专栏  ›  技术社区  ›  mles

子shell中使用的“basename”返回“找不到命令”[重复]

  •  0
  • mles  · 技术社区  · 7 年前

    运行此脚本时:

    #!/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
    

    为什么是 基名 不在地下室工作?如果相关的话,我在Mac上。

    1 回复  |  直到 7 年前
        1
  •  1
  •   William Pursell    7 年前

    你重置了路径。别那么做。shell搜索路径中列出的所有目录,您已经更改了它,这样路径就不再包含包含basename的目录。

    推荐文章