如何从任何地方运行我的 shell 脚本

如何从任何地方运行我的 shell 脚本

我有 Ubuntu Studio 16.10 64 位。我创建了一个 shell 脚本 xyz.sh 文件的路径是 home/somefolder/test/xyz.sh 我已经添加

`chmod u+x xyz.sh` 

我运行了脚本

./xyz.sh

成功了。

但是,当我使用 cd 转到我的主目录并执行 xyz.sh 时

 ./xyz.sh 

我收到消息 bash:./xyz.sh:没有这样的文件或目录

尽管执行以下操作:

PATH=$PATH:home/somefolder/test/xyz.sh

答案1

如果您正确添加了路径,则只需调用脚本的名称,而xyz.sh不是使用./xyz.sh

通过./告诉 shell 查看当前工作目录,然后从那里运行 xyz.sh。

--

旁注,您的目录路径开头缺少一个 / ,它应该是PATH=$PATH:/home/somefolder/test,您应该只添加目录,而不是整个可执行文件名称。

答案2

显式声明可执行文件的路径将使 shell 尝试使用该路径来执行可执行文件。

如果说./myscriptand ifmyscript不在当前目录中,那么您将收到“没有这样的文件或目录”错误。这确实不是使用$PATH变量。

应该$PATH是以:- 分隔的目录(不是文件)列表,当命令行上未指定路径时,shell 将在其中搜索可执行文件。将当前目录 ( .)添加到变量中存在潜在的安全风险PATH(请参阅“添加 . 是否安全?我的路径?怎么会?”)。

当您只想访问普通之外的单个可执行文件时,另一个简单的解决方案$PATH是使用别名:

alias myscript=/path/to/myscript

(这位于您的 shell 初始化文件中,可能.bashrc用于bash)。

您应该在别名中指定可执行文件的完整绝对路径。

相关内容