gpt4 book ai didi

linux - Sudo 将中断导入我的脚本

转载 作者:太空宇宙 更新时间:2023-11-04 03:56:31 26 4
gpt4 key购买 nike

我有一个 shell 脚本 (my.sh),它导入另一个文件 (myfile.env)。 myfile.env 的名称作为参数传递给 my.sh。它以 root 身份运行良好,我希望通过 sudo 为其他用户提供运行它的能力。

myfile.env

some shell scripts........

my.sh

ENVFILE="$1"
if [ -e $ENVFILE ] ; then
. $ENVFILE
fi

我将 my.sh 称为

sudo /abc/def/my.sh myfile.sh

sudoers 文件如下

Cmnd_Alias MYSUDO = /abc/def/my.sh, /bin/bash
%mygroup ALL = MUSUDO

不幸的是,这会导致上面 my.sh 代码中的第三行出现错误。它说

.: myfile.env: cannot open [No such file or directory]

有趣的是,在检查文件存在返回 true 后我收到此错误。

sudo -s 和 -E 选项没有帮助(不知道我是否正确使用了它们)

有人可以帮我解决这个问题吗?我使用的是 CeNT OS 6.5

最佳答案

使用sudo/abc/def/my.sh/absolute/path/to/myfile.env

如果 myfile.sh 应该与 my.sh 位于同一目录中,那么 my.sh 可以执行以下操作:

ENVFILE=$(dirname "$0")/"$1"

关于linux - Sudo 将中断导入我的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24509639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com