そういう設定がされてないとsudo
コマンドを実行した時にパスワードを入力しないといけません。
sudo echo 1
# Password:
普通にターミナルでそれだけ実行する程度ならそれでも特に問題ないのですが、シェルスクリプトなどで処理の流れを止めたくない時にそれはちょっと困ります。
sudo -S
そんなときは-S
または--stdin
オプションを使います。これでパスワードが標準入力で渡すことができます。
-S, --stdin read password from standard input
例えばこんな感じです。
echo 'passwd' | sudo -S echo 1 2>/dev/null
# 1
2>/dev/null
は、sudo
を実行したときのPassword:
という標準エラー出力のテキストが表示されないように/dev/null
に捨てています。