为脚本创建引用

时间:2010-07-07 03:35:31

标签: linux bash unix command-line

我想做出以下类型的参考:

例如,

“ls”命令在大多数* nix环境中普遍可用。用户可以从任何地方输入来执行脚本。

所以,我写脚本“x”。我想确保从用户输入x的任何地方引用实际脚本“x”。

因此,如果我在家庭/用户/桌面目录中存储了脚本“x”,我不应该像以下那样引用脚本:

home/user/Desktop/x

我应该可以这样做:

x

谢谢!

3 个答案:

答案 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变量。