从任何地方启动 shell 脚本

从任何地方启动 shell 脚本

我可以从任何地方运行我的脚本吗~/scripts

假设我想运行,./scriptname而不管我当前的工作目录。

答案1

您可以将~/scripts其添加到$PATH环境变量中。然后您可以scriptname从任何地方运行(但不是./scriptname,因为./表示当前目录)。

这个答案展示了如何添加~/bin$PATH,但您~/scripts当然可以对执行相同的操作。

答案2

添加

 export PATH=$PATH:~/scripts

到文件末尾~/.bashrc。这样您只需在 bash 中键入 scriptname 即可执行脚本~/scripts/。您需要注销才能使其在您的会话中工作(您可以通过打开新终端来测试脚本)。

我通常会添加

 export PATH=$PATH:~/bin

到我的路径,然后创建指向我想在我的会话中可用的脚本和程序的符号链接。

cd ~/bin
ln -s ~/Tools/eclipse3.7/eclipse 
# which will create a symlink in ~/bin/ with the name eclipse
# pointing to ~/Tools/eclipse3.7/eclipse which allows me to execute
# the eclipse in ~/Tools/eclipse3.7/

请注意路径文件具有优先权。如果我已经通过 ubuntu 安装了 eclipse,它将首先在除 之外的所有其他地方搜索 eclipse ~/bin/。如果您想更改此行为,只需反过来导出目录:

export PATH=~/bin:$PATH

确保脚本目录中的脚本是可执行的,否则导出将不会产生效果。

您可以通过输入来查看可用的路径

echo $PATH

如果您想查看env控制台中的所有环境变量类型。

答案3

两种方式:

  • 使用完整路径调用 shell 脚本./,而不是像~/scripts/scriptname
  • 将包含 shell 脚本的文件夹添加到$PATH环境变量中,然后调用不带前导的 shell 脚本./,例如scriptname

相关内容