【问题标题】:how can i execute my script in any location from command line? [duplicate]如何从命令行在任何位置执行我的脚本? [复制]
【发布时间】:2017-08-06 22:48:54
【问题描述】:

我在 /opt 位置有脚本,如果我想运行该脚本,我必须转到 /opt 位置并需要运行该脚本。但我想从命令行的任何位置运行该脚本。我该怎么办?

例如:script.sh 位于 /opt 位置。要执行此脚本,我还必须提供位置路径。 ./opt/script.sh.

我想在不提供位置的情况下从位置执行此脚本。

如果我给./script.sh,就像从根目录一样,它必须执行。是否需要在任何 init.d 脚本中添加此位置路径?

运行脚本以将命令行参数更新到文件中。 script --name "aaaa",文件中的名称值更新。 如果我通过命令行从任何位置发出此命令,则文件需要更新。

【问题讨论】:

  • 如果您将其移动到/usr/bin$PATH 中的其他目录(或将/opt 添加到您的PATH),则无需指定位置。脚本有责任找到它修改的任何文件。
  • 将可执行文件放在以/bin 结尾的目录中是一个严格的约定。您可能希望将脚本放在 /opt/bin 中,然后将其添加到您的 PATH 中。

标签: bash shell unix path


【解决方案1】:

您想将脚本复制/移动到PATH 变量指定的文件夹之一。这是 Bash 寻找程序的地方。像这样查看这个列表:

echo $PATH | tr ':' '\n' 

在 Ubuntu 上,~/bin 是放置程序的好地方,因为您在这里始终拥有读写权限。使用sudo,您可以将它放在任何这些文件夹中,但这应该适合您:

cp script.sh ~/bin 

【讨论】:

    【解决方案2】:

    试试这个, 将此行保存在您的 ~/.bash_profile 文件中,

    PATH=$PATH:/opt/
    

    就是这样。像 bash 命令一样从任何地方运行您的脚本。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2015-07-30
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多