
シェルスクリプト内でsudoコマンドを使用したいことがあり、使う方法を調べたところexpectコマンドを使用すればよいと分かりました。
使い方を防備録として記録します。
シェルスクリプトの中でsudoコマンドを使う方法
最初に結論からになりますが、以下のスクリプトでできます。
#!/bin/sh
PW="password"
expect -c "
set timeout 1
spawn sudo su
expect \"password:\"
send \"${PW}\n\"
expect \"$\"
exit 0
"
passwordには自分のパスワードを入力してください。
expectコマンドについて
簡単にexpectコマンドについて紹介します。
expectは対話を自動化するコマンドです。
expectコマンドを使おうとして、『expect コマンドが見つかりません』というエラーが出た場合は、以下のコマンドでインストールしましょう。
apt-get install expect
上記のスクリプトでは以下の5つのexpectコマンドを使用しています。
この5つのコマンドを使いこなせば、シェルスクリプト内でsudoを使う他に、様々なスクリプトを自動化することができます。
最後に
シェルスクリプトの中でsudoコマンドを使用するという特殊なケースはなかなかないかもしれませんが、誰かの参考になれば幸いです。
この記事を見ている人の中でもっといい方法を知っている方がいましたらコメントで教えてください。