コマンドをラップする
あるアプリケーションが特定の外部コマンド(たとえば、/usr/sbin/ntpdate)を呼び出しているとわかっていて、さらにどんなパラメータがわたっているかを知りたい場合、コマンドをラップすることがある(UNIX等の場合)。
ntpdateをラップする例で説明すると、
- /usr/sbin/ntpdateをntpdate.orgにリネーム
- /usr/sbin/ntpdateを下記のように作成、実行権を与える
#!/bin/sh /usr/bin/logger -i -t ntpdate "options: $*" exec /usr/sbin/ntpdate.org $*
引数がsyslogに表示されるようになる。あまりシェルスクリプトを書かない人でも$*や$?等の特殊シェル変数を覚えておくと便利。
- $* 引数全部
- $? 実行結果(EXITの引数)
コマンド実行直後に
echo $?
とすれば、0とか1とか表示される。慣例的には1がエラー。
まあ、普通は/usr/sbin/ntpdateなんて書き換えられないはず。書き換えると、大量のアラートが出るとか。
あくまでもクローズドな環境でのデバッグ用ってことで終了!