【发布时间】:2016-04-18 22:07:45
【问题描述】:
所以我确定这是在某处写的,我只是在搜索时措辞错误,但我一直没能找到它。
我编写 shell 脚本。其中许多脚本需要超级用户权限。我不想将 sudo 命令放在脚本中,而是想从一开始就使用 sudo 调用整个脚本。
所以而不是:
#!/bin/bash
# Sample Script 1
sudo mkdir /usr/tempDir
应该是:
#!/bin/bash
# Sample Script 2
mkdir /usr/tempDir
我会像这样调用它:sudo ./sampleScript.sh
我的问题是,当我写一个脚本时,我将它simlink到我的bin,所以我在执行它时不需要担心脚本的路径。
如果我将文件 sim 链接到我的 bin,并且我将其运行为:sampleScript.sh,它会被识别(并且会失败)。但是,如果我这样做:sudo sampleScript.sh,我会收到“sudo: sampleScript.sh: command not found”消息。
如果它同时在 /home/myName/bin 和 /usr/local/bin 中,就会发生这种情况。
我知道必须有一个技巧才能完成我所缺少的这项工作。而且我也知道我可能只是没有正确地措辞我的谷歌搜索。只是在寻找一些指导来解决这部分问题。
谢谢。
【问题讨论】:
-
你试过没有
./的sudo sampleScript.sh吗?如果这不起作用,也许尝试sudo env "PATH=$PATH" sampleScript.sh,因为可能 sudo 自己的 shell 在其 $PATH 中没有该脚本的目录。 -
如果我的回答对您有帮助,请您接受。