首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Perl中,-x选项到底是什么意思?

在Perl中,-x选项到底是什么意思?
EN

Stack Overflow用户
提问于 2012-09-01 03:39:56
回答 3查看 1.3K关注 0票数 2

我不知道Perl,所以请耐心等待!这是生成错误的脚本中的一小部分:

代码语言:javascript
复制
    if (-x '/usr/bin/gcc') {
        $gcc = Fink::Services::enforce_gcc(<<GCC_MSG);
Under CURRENT_SYSTEM, Fink must be bootstrapped or updated with gcc
EXPECTED_GCC, however, you currently have gcc INSTALLED_GCC selected.
This typically is due to alteration of symlinks which were
installed by Xcode. To correct this problem, you will need
to restore the compiler symlinks to the configuration that
Apple provides.
GCC_MSG
        $gcc = "-gcc" . $gcc;
    }

此脚本在Mac上安装fink包管理器。(我不是Mac用户,试图帮助我的朋友安装一个程序,该程序最初是一个GNU程序,需要从源代码编译)。

安装脚本会抱怨GCC的版本不是它期望的版本。我怀疑这就是失败的地方,但我不太明白它在做什么。

我试过创建一个指向已安装的GCC的符号链接,版本是4.2.1,而fink想要的是版本4.2。

如果我将指向GCC的符号链接放到/usr/bin中,就会显示此消息。否则,它会正确识别GCC的版本,并拒绝安装。

我认为-x开关类似于Bash,意味着它正在检查文件是否为可执行文件,但我不确定它在Perl语言中到底做了什么,它会将指向可执行文件的链接视为可执行文件吗?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-01 03:51:02

它测试文件是否设置了可执行位。在您的示例中:chmod -x /usr/bin/gcc将导致您的if块无法执行。chmod +x /usr/bin/gcc将提示您的if代码块执行。

票数 4
EN

Stack Overflow用户

发布于 2012-09-01 05:17:35

除了-llstat()之外,Perl的文件测试操作符(您可以使用以下命令查看文档: perldoc -f -x)通常遵循符号链接。如果您特别想要测试链接而不是目标,可以首先执行其中一个测试,然后测试-x __作为参数使其重用最后的stat结果。

票数 1
EN

Stack Overflow用户

发布于 2012-09-01 04:01:52

代码语言:javascript
复制
-X  File is executable by real uid/gid
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12221559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档