我是个脚本小子,喜欢为事物编写 bash 脚本,并将它们保存在我同步的存储库中,在我的个人电脑上,我将它们保存在 home/otherStuff/customBin 文件夹中,但是......
虽然我可以将它添加到每个繁琐的配置文件的 .bashrc 中,但 etc/environment 似乎由于某种原因无法工作。
(编辑)@steeldriver 回答了下面的部分,但我仍然需要回答上面的问题。
问题的关键在于,当我执行“sudo customScript”时,它表现得好像文件不在路径上,但执行“sudo -i”然后执行“customScript”却可以正常工作。我该如何修复它?
“在默认的 Ubuntu 配置下,sudo 使用自己的 secure_path 代替环境的 PATH - 例如,可执行文件在没有 sudo 的情况下运行,但在有 sudo 的情况下却不能运行” – steeldriver
答案1
您应该能够通过添加到文件使其成为通用路径/etc/profile
,并使其添加检查。
如果您将以下内容添加到底部,/etc/profile
那么当您重新启动时它应该能够将其添加到通用或全局路径中:
# Check for script directory and add to path
if [ -e /home/otherStuff/customBin ]; then
PATH=/home/otherStuff/customBin:$PATH
fi
答案2
放置用户安装的应用程序(和脚本)的通常位置是/usr/local/bin
。
您只需sudo
将脚本复制/同步到此位置。
/usr/local/bin
应该在您的路径中,并且如果可执行,则所有用户都可以运行脚本。