Re: [Q]引数指定でも標準入力でも同様の動作をさせたい場合
環境大学の齊藤です
Anonymous Buddha wrote:
> csh でスクリプトを書いたのですが、引数指定でも標準入力でも同様の動作をさせ
> たい為に、
というと、
cat "$@" | ...
で済むシチュエーションを普通は指すのかとおもったですが。。。
今回は違うようですね。
> #!/bin/csh/
やはりshで書きませんか?
shなら、
if [ $# -eq 0 ] ;then
cat
else
echo "$@"
fi |
**処理本体(標準入力を読む)**
と書けるのですがねぇ。
標準入力から与えられるファイル量が小さい(max 1KBとか)ことが
わかっているなら、
if [ $# -eq 0 ]
set `cat `
fi
処理($*を処理する)
と書いたり。
標準入力からのデータを1行ずつ処理するのなら、
if [ $# -eq 0 ] ;
line="$*"
exec 0< /dev/null
else
read line
fi
while : ;do
$lineを処理する
read line ||break
done
とかいう書き方もあり得ますね。
--
齊藤明紀 saitoh at kankyo-u ac jp
まちがってシグネチャにメールアドレスを書いてしまったので、
キャンセルして再投稿。
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