[Q]引数指定でも標準入力でも同様の動作をさせたい場合
こんにちは。
質問があります。
csh でスクリプトを書いたのですが、引数指定でも標準入力でも同様の動作をさせ
たい為に、再起呼び出しを利用してみました。スクリプトが test.sh として、以下
の
ような感じです。
#!/bin/csh/
if ($#argv > 0) then
while ($#argv > 0)
set BUFF = $argv[1]
echo $BUFF | test.sh
shift
end
exit 0
else
while (1)
set BUFF = `line`
if ($status != 0) then
break
endif
**処理本体** $BUFF
end
exit 0
endif
#似たような方法として、引数を全てテンポラリーファイルに吐いてから、まと
#めて cat して再帰する、というのも試みました。引数多の場合ファイル使用
#の方が高速で、引数少の場合ファイル不使用の方が高速でした。
引数の場合と標準出力の場合に似たような動作をするものは、コマンド類
でも色々ありますが(wc,ls等)、どのように実装されているのでしょうか?
最初は、引数がある場合とない場合で全く同じ処理をそれぞれコーディング
していたのですが、さすがに全く同じ処理を二箇所にコーディングするのは
馬鹿馬鹿しいと思い、再帰にしてみたのですが、邪道でしょうか?
このような場合に用いる一般的な手法というようなものはあるのでしょうか?
以上、ご教授の程、よろしくお願いいたします。
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735