我正在设置一个带有菜单和子菜单、选项等的 shell 脚本。但是在每个菜单/子菜单/等上,我需要一个“返回主菜单”选项。
我已经设置了菜单并且它工作正常,但是我需要一种方法来简单地从头开始重新启动脚本,重置所有变量等。
或者退出当前脚本并重新启动它的方法。
我试过这样做:
ScriptLoc=$(readlink -f "$0")
./ScriptLoc
Run Code Online (Sandbox Code Playgroud)
但这会在“旧”脚本中启动“新”脚本,因此当我退出“新”脚本时,它会返回到“旧”脚本(如果有任何意义)。这是脚本中的脚本之类的东西。
任何人都知道如何完全重新启动它?
正如标题中所说,我需要检查是否在 shell 中为此终端会话输入了 sudo 密码(也就是,如果我现在拥有 sudo 权限)。
如果我有,我想做一件事,如果我没有,那么它不应该提示我去做,让我做另一件事。
所以在伪代码中它看起来像这样:
if (sudo = true)
echo "i got sudo"
else
echo "i dont have sudo"
fi
Run Code Online (Sandbox Code Playgroud)
但是我为此找到的所有命令在尝试检查时总是提示我输入 sudo 密码。
基本思想是脚本可以(并且会)在多个地方要求提供 sudo 密码,但我不想打印出“脚本现在将要求您提供 sudo 密码”。如果已经输入(这意味着它不会要求输入 sudo 密码)。
希望可以有人帮帮我。