シェルスクリプトでディスク消去(3)

実際に消去するときに、いきなり消去を始めてしまうと取り返しのつかないことになるので、そこは確認画面を作成して注意を促すようにするのが普通です。そこで、ディスク情報を表示して確認後消去を始めるという手順を踏みます。

まず、ディスク情報を表示するために、前回の情報

smart=`smartctl -a /dev/sda | sed -n '4,12p'`

では情報量が多すぎるので、ディスクの型番とシリアルナンバーだけを取得するように変数とコマンドを書き換えます。

hddmodelsn=`smartctl -a /dev/sda | sed -n '6,7p'`

あとは、これをもとに確認画面を出しますが、通常はif文で行うところですが、ここはwhiptailを使用していきます。whiptailのオプション[ --yesno ]を使用します。

whiptail --yesno "${hddmodelsn}\n\nを消去しますか?" 20 40

途中の[ \n ]は改行コードです。この場合2行改行を入れています。これで<はい><いいえ>のどちらかを選んでそれによって処理を分ける方法をとります。whiptailの仕様では、<はい>で終了ステータスが0、<いいえ>では終了ステータスが1をとるのでそれで処理を分けますが、終了ステータスはシェルスクリプトでは変数 $? に入るのでそこを調べていきます。

たとえば<はい>を選ぶと $? には0が入るはずなので調べてみましょう。

# echo $?
0

この値を条件分岐してやればうまくいきそうです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です