2013-02-01 34 views
3

在UNIX中,我读到将一个shell脚本移动到/ usr/local/bin将允许您通过简单地键入“[scriptname] .sh”并按Enter键从任意位置执行该脚本。如何从任何位置执行bash脚本?

我已经移动了具有普通用户权限和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 

这是当我尝试移动,然后运行该脚本会发生什么:

[[email protected] ~]$ sudo mv sysinfo.sh /usr/local/bin 

[[email protected] ~]$ sysinfo.sh 

bash: sysinfo.sh: command not found 

回答

6

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

echo $PATH 

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

在路径添加目录,你可以修改你的shell init脚本并添加新的目录,例如,如果你在全光照的BASH外壳可以EDI您.bashrc并添加行:

PATH=$PATH:/the_directory_you_want_to_add/:/another_directory/ 

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

1

你必须在你的路径的地方移动。试试这个:

echo $PATH 

我打赌/ usr/local/bin没有列出。

我在我的$ HOME作出bin目录(即mkdir ~/bin)并将其加入到我的〜/ .bashrc文件处理这个(使文件,如果你不已经有一个):

export PATH=~/bin:$PATH