たかまるの雑記

たまに更新

シェルで関数のトレース表示(2)

Ubuntoのtypeset -fx 関数名でトレース表示されない件はよくわからなかった。
set -xで関数もトレース表示されるから、
Ubuntoではset -xsh -xで実行することにしよう。

Hp-UXは関数内にset -xがないとトレース表示されないから
いままでは、読み込むファイルの先頭でvar=$-と、設定を変数に入れて
各関数でset -$varと設定していた。

これでsh -x fileと実行すると、関数内でset -xが実行されて
トレース表示される。

でも全部の関数にset -$varを入れるもの、あまりきれいじゃない気がする。

HP-UXtypeset -ftは関数ごとに設定できるから良いんだけど、
カレントの環境しか設定できないから、
sh -x fileみたいにファイルを実行した場合はトレース表示されない。

スクリプトファイルの中に全部の関数をtypeset -ftする関数をつくって
mainの処理を実行する前にその関数を呼べば良いのかもしれないけど、いまいち。

DEBUGをtrapしてもできるかもしれないけど、
トレース表示だけのための処理を書くのも、うまくない気がする。

難しい。