shell脚本执行两次

shell脚本执行两次

我在 shellscript 中有这个小代码片段来设置密码:

if [[ -z "${PASS+x}" ]]; then
    read -p "enter pass or use default [test1234]" PASS
    if [[ -z "$PASS" ]]; then
        PASS="test1234"
    fi
fi


if [ $EUID != 0 ]; then
    sudo "$0" "$@"
    exit $?
fi

当我运行脚本时,读取命令被执行两次。这不应该发生。任何人都可以帮我找到错误。

完整脚本:github(已更正)

答案1

在您链接到的完整脚本中,您有以下内容:

if [ $EUID != 0 ]; then 
    sudo "$0" "$@" 
    exit $? 
fi 

read这是在您在问题中显示的所有选项处理和调用之后完成的。我的猜测是,您正在点击此代码块,使用 重新调用脚本sudo,并点击该read命令两次 - 一次在使用 重新启动脚本之前sudo,一次在之后。

相关内容