从任何地方启动 shell 脚本

mre*_*req 13 command-line scripts paths

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

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

elm*_*cha 18

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

这个答案显示了如何添加~/bin$PATH,但你~/scripts当然可以做同样的事情。


Pas*_*cal 17

添加

 export PATH=$PATH:~/scripts
Run Code Online (Sandbox Code Playgroud)

到您的~/.bashrc文件末尾。这将允许您~/scripts/通过在 bash 中简单地输入 scriptname来执行您的脚本。您需要注销才能使其在您的会话中工作(您可以通过打开一个新终端来测试脚本)。

我通常添加

 export PATH=$PATH:~/bin
Run Code Online (Sandbox Code Playgroud)

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

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/
Run Code Online (Sandbox Code Playgroud)

请注意,路径文件具有优先权。如果我已经通过 ubuntu 安装了 eclipse,它会首先在除~/bin/. 如果要更改此行为,只需以相反的方式导出目录:

export PATH=~/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

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

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

echo $PATH
Run Code Online (Sandbox Code Playgroud)

如果要env在控制台中查看所有环境变量,请键入。