2005年10月06日(木) [長年日記]
- 今日は耳鳴りがする。
- 歯抜いたら電動歯ブラシは欲しくなくなった。
■ [unix][shell] シェルスクリプト (bash)
今日はシェルスクリプトにちまちまとエラー処理を追加したりとかしてた。退屈だがシェルスクリプトの勉強にはなる。どうせすぐ忘れるけどな。
せっかくなのでちょっとメモしておこうかな。
マニュアルの目次
いきなりシェルスクリプトと関係ないけど、JMってページの最後に目次があるのか。今まで見えてなかった。便利。
終了ステータス
直前のコマンドの終了ステータスは
$?
で参照できる。これすぐ忘れる。
終了ステータスの説明はここにあった。
exit
exitは組み込みコマンド。
exit 10
とすると終了ステータスは10になる。普通だ。で、
exit
としたときは最後に実行したコマンドの終了ステータスになる。なるほど。
何もしない
:
と書くと何もしない。これも組み込みコマンド。
分岐
コマンドの処理結果で分岐したいときは
if コマンド; then # コマンドが成功したとき(0を返したとき) else # コマンドが失敗したとき(0以外を返したとき) fi
こうかな。複数のコマンドに対し
if コマンド1 \ && コマンド2 then # コマンド1が成功し更にコマンド2も成功したとき else # そうじゃないとき fi
とかも書ける。ifの後に!を続けると真偽を反対にできて
if ! コマンド; then # コマンドが失敗したとき(0以外を返したとき) fi
とか書ける。普通か。
で、エラー処理を書くのに
if コマンド; then : else exit # コマンドが失敗したから終了する fi
とすると「コマンド」がエラーになったときにこのスクリプトの終了ステータスは「コマンド」の終了ステータスになるのに、
if ! コマンド; then exit # コマンドが失敗したから終了する fi
とすると「コマンド」がエラーになったときにこのスクリプトの終了ステータスが0になってしまいちょっとはまった。
比較
if [ $a = $b ]; then # $aと$bが等しいとき fi
のように書く。「=」と書くと文字列として比較して、「-eq」と書くと整数として比較するようだ。整数でないものを「-eq」で比較するとエラーになる。
■ やること
ブラウンの安い電動歯ブラシ買う- 蛍光灯を捨てる
http://ogawa.s18.xrea.com/tdiary/20060322.html#p03<br>メモの日々<br>Seleniumを使った<br>Seleniumを使ったのでトラックバック