在基于LMDE的笔记本电脑上,我有一个脚本upgrade.sh
,它只运行以下命令:
#!/bin/sh
apt-get upgrade
apt-get dist-upgrade
该脚本位于/home/francois/scripts
目录中。我可以从这个目录中轻松运行它。它只是有效。现在我运行以下命令:
$ sudo ln -s /home/francois/scripts /opt/scripts
$ sudo ln -s /opt/scripts /usr/local/bin/scripts
并创建文件/etc/profile.d/myscripts.sh
只有一行:
export PATH=$PATH:/usr/local/bin/scripts
我输入
$ echo $PATH
并看到它包含/usr/local/bin/scripts
但是当我跑步时
$ sudo upgrade.sh
系统显示the command not found
ls -l
显示-rwxr-xr-x 1 francois francois
...
答案 0 :(得分:1)
Sudo不会继承调用者的环境变量。 $PATH
是其中一个变量。
要使其继承从中调用的shell的环境变量,请将其作为sudo -E [cmd]