如何从任何位置执行bash脚本?

Joe*_*sey 4 unix

在UNIX中,我读到将shell脚本移动到/ usr/local/bin将允许您通过只需键入"[scriptname] .sh"并按Enter键从任何位置执行脚本.

我已经移动了具有普通用户和root权限的脚本,但我无法运行它.

剧本:

#! bin/bash

echo "The current date and time is:"
date

echo "The total system uptime is"
uptime

echo "The users currently logged in are:"
who

echo "The current user is:"
who -m

exit 0
Run Code Online (Sandbox Code Playgroud)

当我尝试移动然后运行脚本时会发生这种情况:

[myusername@VDDK13C-6DDE885 ~]$ sudo mv sysinfo.sh /usr/local/bin

[myusername@VDDK13C-6DDE885 ~]$ sysinfo.sh

bash: sysinfo.sh: command not found
Run Code Online (Sandbox Code Playgroud)

Atr*_*opo 6

如果您想从任何地方运行脚本,您需要将其添加到您的脚本中PATH.通常/usr/local/bin是在每个用户的路径中,所以这样它应该工作.因此,检查您的系统中/usr/local/bin是否在您PATH的终端上:

echo $PATH 
Run Code Online (Sandbox Code Playgroud)

你应该看到了很多上市的路径(如/bin,/sbin等...).如果未列出,则可以添加它.更好的解决方案是将所有脚本保存在目录中,例如在您的目录中,home并将其添加到路径中.

要在路径中添加目录,您可以修改shellinit脚本并添加新目录,例如,如果您使用BASHshell,则可以编辑.bashrc并添加以下行:

PATH=$PATH:/the_directory_you_want_to_add/:/another_directory/
Run Code Online (Sandbox Code Playgroud)

这会将新目录附加 到您现有的目录PATH.