【问题标题】:Difference between source and './' with respect to permissions in bash?source 和 './' 之间关于 bash 权限的区别?
【发布时间】:2015-03-26 20:55:23
【问题描述】:

我有一个简单的可执行 shell 文件 testperm.sh,权限为 -rw-------@

当我执行source testperm.sh. testperm.sh 时,文件会执行并打印Hello...........,它应该这样做。

但是,如果我运行./testperm.sh,我会得到-bash: ./testperm.sh: Permission denied。为什么使用此命令会拒绝该权限,但使用 source 却可以正常工作?

(顺便说一下,我指的是 OS X 上的 bash shell)

【问题讨论】:

    标签: macos shell permissions terminal


    【解决方案1】:

    source testperm.sh/. testperm.sh./testperm.sh 之间的区别就像 ls /bin/bash/bin/bash 之间的区别。

    每对中的前者将文件用作其他命令的参数

    每对中的后者都使用文件作为命令来运行。

    运行命令需要可执行权限。不使用文件作为参数。

    【讨论】:

    • 所以我想我的问题是......源如何在内部工作以便它可以访问文件,有什么方法可以chmod 拒绝它的权限?
    • 它读取文件。与cat 或其他任何方法相同。如果您没有读取文件的权限,那么它们将无法工作。
    猜你喜欢
    • 2016-06-11
    • 2011-07-13
    • 2013-04-18
    • 1970-01-01
    • 2011-09-03
    • 2011-12-13
    • 2022-06-28
    相关资源
    最近更新 更多