そういう設定がされてないと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に捨てています。

JavaScript で飯食べたい歴約 5 年、 純( nju33 ) によるノートサイトです。

このサイトではドリンク代や奨学金返済の為、広告などを貼らせて頂いてますがご了承ください。

Change Log