シェルスクリプトを作ってて、標準入力の種類がなんであろうと、同じように処理したい場合。
#!/bin/sh
#-----------------------------
#標準入力をパイプに直してしまう。
#-----------------------------
if [ -t 0 ] ; then
exec <$1
fi
#-----------------------------
while read c_Text
do
echo "$c_Text" #シェルで行う処理に置き換える。
done
このシェルプログラム名が shread.sh という名前だった場合、以下の処理は同じ結果になる。
> ./shread.sh .login
> cat .login | ./shread.sh
> ./shread.sh < .login
後でわかったんですけど、バックグラウンドジョブにして、ログアウトすると、うまく機能しません。