【问题标题】:How to get the absolute path of the perl script I executed?如何获取我执行的 perl 脚本的绝对路径?
【发布时间】:2013-06-26 21:35:23
【问题描述】:

我想获取我执行的perl脚本的绝对路径,例如

我当前的工作目录是 /home/Program/A/B 并且 /home/Program/A/sort.pl 中有一个 perl 脚本

当我在 /home/Program/A/B 目录下输入 perl ../sort.pl 时,我想得到 ​​p>

sort.pl 的绝对路径是 /home/Program/A/sort.pl

我的意思是不管我当前的工作目录是什么,我都想得到perl的绝对路径

脚本是,如何实现的?

谢谢

【问题讨论】:

  • 您希望脚本能够获得自己的路径吗?你想让 shell 告诉你脚本在哪里吗?您是否希望能够在不提供路径的情况下运行脚本?
  • @antiduh 我知道我应该给出路径以便我可以运行脚本..但是当我使用间接路径来指示脚本的位置时,我想得到它的绝对路径...跨度>
  • history shell 命令会告诉您运行了哪些脚本,但它只会提供用户键入的命令,而不是工作目录或绝对名称(如果只有相对名称)被使用了。但是,由于您知道部分脚本名称,因此应该可以使用 whichlocatefind shell 命令再次找到脚本.

标签: perl


【解决方案1】:

这就是你想要的:

use FindBin qw($RealScript);

这为您提供了修复了所有符号链接的完整路径。

【讨论】:

    【解决方案2】:

    Cwd 模块有一个有用的功能:

    use Cwd qw(abs_path);
    print abs_path(__FILE__), "\n";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-10
      • 1970-01-01
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      • 2012-05-10
      • 2018-02-25
      相关资源
      最近更新 更多