標準入力も受け取れるシェルスクリプト(catコマンド使用)


こんにちは。
cat コマンドを使えば、パイプラインからの標準入力も指定ファイルの内容も受け取るのが容易です。シェルスクリプト例を書いてみました。

#!/bin/sh
# If no file arguments are specified, the standard input is used.

# error handling: 入力が何もない場合にはエラー処理しています。
[ $# == 0 ] && [ ! -p /dev/stdin ] && exit 1

# execution: 総行数を求める例です
cat "$@" | wc -l
exit 0

また同様に、標準入力でも指定ファイルの内容でも受け取って行毎にループを回す例です。ただし最終行まで一度に受け取るので大きいサイズの場合は要注意です。

#!/bin/sh
for line in `cat "$@"`
do
  echo $line
done
exit 0