我可以从任何地方运行我的脚本吗~/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