我在 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
,一次在之后。