逐次確認スクリプト

linuxでテキストファイルに記述されたコマンド群を1行ずつ読み出し、標準出力にプリントした後ユーザに実行するかどうか確認して処理するbashスクリプト。

実行したいコマンドが記述されたファイルを引数として与えると、最初に1行ずつcmd変数に格納、その後問い合わせながら1行ずつ実行します。

中断する場合は、ctrl-Cを押すと、break(再開可能で中断)か、continue(戻る)か、end(終了)か聞かれます。

 

実行結果は以下のような感じ。

例)test.txtの内容を実行する。

実行例

saru@ubuntu:~/test$ ./test.sh test.txt
0 : [ id ] (y/n) > y
uid=1000(saru) gid=1000(saru) groups=1000(saru),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),110(sambashare)
return [0]

1 : [ uname -a ] (y/n) > y
Linux ubuntu 3.13.0-74-generic #118-Ubuntu SMP Thu Dec 17 22:52:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
return [0]

2 : [ date ] (y/n) > y
2016年 10月  8日 土曜日 14:50:29 JST
return [0]

3 : [ ifconfig ] (y/n) > n
4 : [ #comment ] (y/n) > y
return [0]

5 : [ echo -e “\ntest\n” ] (y/n) > y

test

return [0]

saru@ubuntu:~/test$ ./test.sh test.txt
0 : [ id ] (y/n) >
0 : [ id ] (y/n) >
0 : [ id ] (y/n) > y
uid=1000(saru) gid=1000(saru) groups=1000(saru),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),109(lpadmin),110(sambashare)
return [0]

1 : [ uname -a ] (y/n) > ^C
break or continue or end? (b/c/e) > c

1 : [ uname -a ] (y/n) > y
Linux ubuntu 3.13.0-74-generic #118-Ubuntu SMP Thu Dec 17 22:52:10 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
return [0]

2 : [ date ] (y/n) > ^C
break or continue or end? (b/c/e) > b

[1]+  停止                  ./test.sh test.txt
saru@ubuntu:~/test$
saru@ubuntu:~/test$
saru@ubuntu:~/test$ fg
./test.sh test.txt

2 : [ date ] (y/n) > y
2016年 10月  8日 土曜日 14:52:16 JST
return [0]

3 : [ ifconfig ] (y/n) > ^C
break or continue or end? (b/c/e) > e
saru@ubuntu:~/test$

 

Pocket

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)