【问题标题】:How to run a bash file, MAC OS, without “./”? [duplicate]如何在没有“./”的情况下运行 bash 文件、MAC OS? [复制]
【发布时间】:2017-11-20 16:14:56
【问题描述】:

我有一个 bash 文件 mytest.sh 应该分发给其他用户。

在常规情况下,当文件位于同一文件夹中时,我们应该能够通过./mytest.sh 命令运行该脚本。

我希望他们被允许在他们机器的任何地方运行别名 runtest 以运行该脚本。

怎么做?

【问题讨论】:

  • “在 MAC 中”是什么意思?
  • “runtest”与“mytest.sh”有何关系

标签: linux bash


【解决方案1】:

首先,将 mytest.sh 安装在某个 bin 目录中(使用 echo $PATH 检查它们)。然后 cd 进入该目录并

sudo ln -s mytest.sh runtest

现在runtest 命令适用于任何地方。

【讨论】:

  • 别名在这里是一个非常糟糕的解决方案。默认情况下,非交互式 shell 会忽略它们,因此脚本无法在没有明确努力的情况下使用它们。 (另外,/etc/profilelogin shell 运行,而不是非登录交互式 shell - 因此您可以在 /etc/profile 中定义一个函数并将其导出,这将在所有bash 的实例,但那里的别名只会被用户的登录 shell 支持,而不是它产生的非登录 shell)。
  • 谢谢,我也不喜欢它们。从答案中删除。
【解决方案2】:

您可以将包含脚本的文件夹添加到您的 PATH。

export PATH+=":/ROUTE/TO/FOLDER/SCRIPT"

然后,您可以在没有“./”的情况下在终端上执行脚本。

如果您想对所有用户执行此操作,可以添加到“/etc/environment”文件中。

【讨论】:

    猜你喜欢
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多