【问题标题】:How to handle change in the $PWD value in shell script?如何处理 shell 脚本中 $PWD 值的变化?
【发布时间】:2013-04-18 09:56:14
【问题描述】:

我有一个由工具执行的 shell 脚本。 当它由该工具执行时,$PWD 的值由该工具设置。 但是,当我手动执行脚本时,$PWD 的值是脚本的当前目录。

现在我使用这个 $PWD 环境变量在脚本中定位不同的文件位置。

但是当我手动执行它时,文件路径发生了变化,它给出了意想不到的结果。

在手动或通过该工具执行脚本时如何处理 $PWD 值的这种变化?

【问题讨论】:

  • 您可以为脚本提供 PWD 作为可选参数:如果已设置,请使用它。否则,照常工作。
  • PWD 通常指的是当前目录。如果你想让一个变量有别的含义,为什么不使用不同的变量名呢?
  • @fedorqui 在这两种情况下都是手动或通过工具执行 $PWD 的脚本值,但它是不同的 :(
  • 看看一些代码会很有用,所以我们可以猜测我们可以在哪里修改一些东西以使其工作。

标签: linux shell


【解决方案1】:

如果你需要访问脚本本身所在的目录,在bash中你可以使用

script_dir=$(readlink -f ${0%/*})

它获取脚本的相对路径 ($0),截取脚本名称并将其转换为完整路径。

【讨论】:

    猜你喜欢
    • 2014-05-16
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 2015-11-27
    • 2011-10-21
    • 2014-05-16
    相关资源
    最近更新 更多