【问题标题】:How to detect the current directory in which I run my shell script?如何检测我运行 shell 脚本的当前目录?
【发布时间】:2010-12-21 12:16:46
【问题描述】:

如何检测运行我的 shell 脚本的目录名称(或者更好的是整个路径)?

【问题讨论】:

标签: shell


【解决方案1】:

什么外壳?什么操作系统?

初学者可以试试

man pwd
$PWD

【讨论】:

  • 如果你只想要目录的名称,而不是完整路径,请阅读 man basename。
【解决方案2】:

我相信这是最便携的方式:

dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)

【讨论】:

    【解决方案3】:

    这并不像看起来那么简单。查看this questionthis

    【讨论】:

    • 问题是关于确定脚本执行目录,但你的答案是确定脚本文件的名称/目录。
    • @Mat 确实!那时候一定是误会了。正在删除。
    • 您能补充一点信息吗?见meta.stackexchange.com/questions/8231/…
    【解决方案4】:

    替代方法

    pid=$$
    path=$(ps -eo pid,args| awk -vp=$pid '$1~p{print $3}')
    case "$path" in
        ./* ) pwd;;
        * ) echo $path;;
    esac
    

    【讨论】:

      猜你喜欢
      • 2012-04-11
      • 2019-02-10
      • 2011-03-13
      • 2023-03-05
      • 1970-01-01
      • 2012-06-09
      • 2010-10-29
      • 2011-03-21
      • 1970-01-01
      相关资源
      最近更新 更多