Nel*_*ira -1 bash sudo shell-script
我想在脚本开始时询问用户 sudo 密码,然后在运行脚本的其余部分之前测试该密码是否正确。
经过一段时间的搜索,我得到了这个测试脚本:
SUDO_PWD=whatever
sudo -k # <- So I can test it
echo $SUDO_PWD | sudo -Svp '' 2>/dev/null
sudo_response=$(SUDO_ASKPASS=/bin/false sudo -A whoami @>/dev/null)
if [ "$sudo_response" = "root" ]; then
echo "sudo"
else
echo "no sudo"
fi
Run Code Online (Sandbox Code Playgroud)
但是,即使使用 @>/dev/null 重定向,这两条消息也会出现在控制台中。为什么 ?
小智 5
如果您不想有任何输出(即没有标准输出且没有错误),则需要使用如下重定向:
your_command > /dev/null 2>&1
your_command &> /dev/null
Run Code Online (Sandbox Code Playgroud)
仅显示错误并丢弃标准输出:
your_command > /dev/null
Run Code Online (Sandbox Code Playgroud)
并仅显示标准输出并丢弃错误:
your_command 2> /dev/null
Run Code Online (Sandbox Code Playgroud)