68user's page 掲示板

Prev< No. 4773〜4778> Next  [最新発言に戻る] [過去ログ一覧]
No. 4773 # べた 2007/03/17 (土) 17:20:13
readコマンドを使ってファイルから読み込みを行っています。
読み込んだ件数を出力しようとしているのですが、どうしても
0件となってしまいます。
どこがいけないのでしょうか。どう直せばよいのでしょうか。

-----------------------------------
#!/bin/sh
#

FILE="/tmp/sample.csv"

i=0
while read LINE
do

        編集処理

        表示処理

        i=`expr ${i} + 1`

done < ${FILE}

echo "${i} 行読み込みました。"

No. 4774 # べた 2007/03/18 (日) 11:26:27
>>4773 べた

whileとかforのループ内で使用した変数は、
ループ終了後(ループを抜けた後)参照する
ことはできないのでようか。

できるとした場合、どうすればいいのですか。

No. 4775 # 2007/03/19 (月) 23:45:28
>>4774 べた
私もあまり詳しくないのでしりません。
kshでできたような。

http://search.luky.org/linux-users.9/msg06099.html

で、似たことが質問されていますので確認してみては。

No. 4776 # zsh 2007/03/20 (火) 10:37:41
>>4774 べた
最近シェルスクリプト触ってないんですが、
多分これでOKかと。

------
i=0
exec 3<&0 0<$FILE
while read LINE; do
        :
done
exec 0<&3 3<&-
echo $i
------

No. 4778 # べた 2007/03/20 (火) 17:35:18
>> 4776

ありがとうございます。
上手く行きました。

また、以下でも出来ました。

-------------
i=0
exec < ${FILE}
while read LINE
do

        echo ${LINE}
        i=`expr ${i} + 1`

done

echo ${i}
-------------

Prev< No. 4773〜4778> Next  [最新発言に戻る] [過去ログ一覧]