|
readコマンドを使ってファイルから読み込みを行っています。 読み込んだ件数を出力しようとしているのですが、どうしても 0件となってしまいます。 どこがいけないのでしょうか。どう直せばよいのでしょうか。 ----------------------------------- #!/bin/sh # FILE="/tmp/sample.csv" i=0 while read LINE do 編集処理 表示処理 i=`expr ${i} + 1` done < ${FILE} echo "${i} 行読み込みました。" |
|
>>4773 べた whileとかforのループ内で使用した変数は、 ループ終了後(ループを抜けた後)参照する ことはできないのでようか。 できるとした場合、どうすればいいのですか。 |
|
>>4774 べた 私もあまり詳しくないのでしりません。 kshでできたような。 http://search.luky.org/linux-users.9/msg06099.html で、似たことが質問されていますので確認してみては。 |
|
>>4774 べた 最近シェルスクリプト触ってないんですが、 多分これでOKかと。 ------ i=0 exec 3<&0 0<$FILE while read LINE; do : done exec 0<&3 3<&- echo $i ------ |
|
>> 4776 ありがとうございます。 上手く行きました。 また、以下でも出来ました。 ------------- i=0 exec < ${FILE} while read LINE do echo ${LINE} i=`expr ${i} + 1` done echo ${i} ------------- |