我想做出以下类型的参考:
例如,“ls”命令在大多数* nix环境中普遍可用。用户可以从任何地方输入来执行脚本。
所以,我写脚本“x”。我想确保从用户输入x的任何地方引用实际脚本“x”。
因此,如果我在家庭/用户/桌面目录中存储了脚本“x”,我不应该像以下那样引用脚本:
home/user/Desktop/x
我应该可以这样做:
x
谢谢!
答案 0 :(得分:2)
您想要将目录添加到PATH中。 E.g。
PATH="$PATH:/home/user/someDirectory"
您可以将此行添加到.bash_profile
以在启动时执行此操作。但是,您可能不应该将Desktop添加到路径中,因为某些浏览器默认下载到那里(尽管默认情况下它不应该是可执行的。)
答案 1 :(得分:1)
您还可以将脚本放在路径中已存在的现有目录中,例如/usr/local/bin
,或者在脚本的位置创建一个符号链接。
cp /home/user/Desktop/x /usr/local/bin
或
mv /home/user/Desktop/x /usr/local/bin
或
ln -s /home/user/Desktop/x /usr/local/bin
答案 2 :(得分:0)
这并不意味着令人讨厌的重复,但这是我第一次回答问题,我无法回复某人已经很好的答案,我认为他们缺少一些重要的内容。
首先,如果您想确保每个人都可以访问该脚本,您需要确保每个人都具有执行权限:
chmod a+x /path/to/script.sh
您还需要确保它位于$ PATH引用的某处(如提及的其他答案):
echo $PATH # place the script in one of these directories
我个人更喜欢/ usr / local / bin,因为那被认为是自定义全局脚本的 位置。其他答案没有提到的是,如果你想在$ PATH中使用一个目录(比如/ opt / myscriptfolder /),你会想要在/ etc / profile的末尾添加另一个PATH条目:
PATH="$PATH:/opt/myscriptfolder/"
通过将其放在/ etc / profile的末尾,所有用户将在下次登录时收到此修改后的PATH变量。