繁体   English   中英

将script.sh移至bin

[英]Move script.sh to bin

我是Shell编程的新手,我正在尝试创建一个简单的脚本,该脚本向我提供有关Scientific Linux 6上计算机状态(即日期,时间,用户登录等)的一些信息(我知道它很旧,但是我大学的系在上面运行,所以没有逃脱的机会)

基本上我已经创建了脚本“ sysinfo.sh”

 #!/bin/sh
  ....
  exit 0

作为root用户,我想移动它,以便可以在任何地方执行它,我认为正确的方法是

sudo mv sysinfo.sh usr/local/bin

但我收到错误消息

mv: cannot move `sysinfo.sh' to `usr/local/bin': No such file or directory

然后我寻找路径,它给了我

$ echo $PATH
/u/geo2/sw//System/tools/bin:/usr/bin:/bin

移动脚本的正确位置是什么?

这些操作或学习的最佳实践是在$ HOME / bin目录中包含脚本。

mkdir $HOME/bin
export PATH=$PATH:$HOME/bin
mv sysinfo.sh $HOME/bin
chmod +x $HOME/bin/sysinfo.sh

如果您仍然要将其移动到/ usr / local / bin,为什么不这样做:

sudo mv sysinfo.sh /usr/local/bin
chmod +x /usr/local/bin/sysinfo.sh

chmod命令将使脚本可执行。

来自chmod man:

x-执行/搜索位。

您发布的命令表明您正在尝试使用绝对路径进行复制,但是您错过了一个斜杠-目录应为/usr而不是usr

尝试

sudo mv sysinfo.sh /usr/local/bin

请注意,除非指定了绝对路径,否则外壳程序将查找相​​对于当前工作目录的路径。 在这种情况下,外壳程序会在找不到当前目录下的子目录usr下进行查找; 因此错误消息。

非常感谢你! 最后,我没有意识到目录/ usr / local / bin不在PATH中,所以我只需要

export PATH=$PATH:/usr/local/bin
sudo mv sysinfo.sh /usr/local/bin

:D

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM