その場合は、[3] の wwwcheck1.csh のオプション -b, -nb をサポートして、 -nb なら後半の wwwcheck2.csh の部分を実行しないとか、 また逆に wwwcheck2.csh の部分のみを実行するオプション (例えば -bo) をサポートすることなども考えてみるといいでしょう。
ところで、そのような csh スクリプトの統合には別の形もあり、 別の csh スクリプト wwwcheck3.csh を用意して、その中で
#! /bin/csh -fのようにする、という手もあります。 もちろん、この wwwcheck3.csh でコマンドライン解析をして、 上に述べたオプションを実現したり、 あるいは wwwcheck1.csh 用のオプションを受けとった場合は それを wwwcheck1.csh にオプション引数として渡す、 ということもできます。 例:
csh -f wwwcheck1.csh
csh -f wwwcheck2.csh
set check1op = "" # wwwcheck1.csh に渡すオプション
set check1On = 1 # 1 なら wwwcheck1.csh を実行する
set check2On = 1 # 1 なら wwwcheck2.csh を実行する
foreach option ( $argv )
switch ( $option )
case -v:
case -q:
# この 2 つのオプションは wwwcheck1.csh に渡す
# set check1op = "$check1op $option"
# 2 つ以上のオプションを渡すときは上のように書く
set check1op = "$option"
breaksw
case -b:
# wwwchech2.csh を実行する
set check2On = 1
breaksw
case -nb:
# wwwchech2.csh を実行しない
set check2On = 0
breaksw
case -bo:
# wwwchech2.csh のみ実行する
set check1On = 0
set check2On = 1
breaksw
endsw
if ( $check1On ) then
csh -f wwwcheck1.csh $check1op
endif
if ( $check2On ) then
csh -f wwwcheck2.csh
endif
このような統合を行う場合は、 wwwcheck1.csh, wwwcheck2.csh も残っているので、 あいかわらずそれぞれを単独で使えることになるのですが、 ファイルが別々になっていますので保守性は悪くなります。 特に、wwwcheck1.csh, wwwcheck2.csh では共通の設定がありますので、 それを変更する場合は両方のファイルを忘れずに修正しなければいけません。
共通の設定は、それらを wwwcheck1.csh, wwwcheck2.csh から分離し、 別の一つのファイルにまとめて書いておいて、 それを利用する csh スクリプト (wwwcheck1.csh, wwwcheck2.csh) で その共通の設定ファイルを source 内部コマンドで読み込む、 という手もありますが、後で修正する場合は、 結局複数のファイルの中身を見ないとわからないでしょうから、 その方法でも保守性がよくないという点はあまり改善しないだろうと思います。
竹野茂治@新潟工科大学