- PR -

サブシェル内の変数の引継ぎ方法について

1
投稿者投稿内容
だま
会議室デビュー日: 2004/08/28
投稿数: 19
投稿日時: 2004-08-28 05:29
例えば入力元のファイルを読み込んで、
ある項目を取得しながら全体の件数を数えたい場合、
私はreadを用いて下記のようにしたのですが、
サブシェル内で変数(COUNT)がカウントアップ
されていく形になり、サブシェル外に値を伝えることが
できません。
exportしてしまえばいいのかな、とやってみたのですが
状況は変わりません。
exportの仕方が悪いのか、そもそも無理なのかどちらでしょう?
こういうケースってよくあると思うんですが、皆さんはどのように
されていますか?


#!/bin/sh
COUNT=0
export COUNT

while read message
do
COUNT=`expr $COUNT + 1`
done < INPUTFILE

echo $CONUT


・・・上記の場合、入力件数が何件あっても
最後のechoで出力されるのは「0」になってしまいます。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-08-30 13:21
$CONUT
$COTUN
$CONTU

どれもダメな様ですな・・・

#!/bin/sh
a=`wc -l INPUTFILE | awk '{ print $1 }'`
echo $a

b=`awk 'END { print NR }' INPUTFILE`
echo $b

楽したらアカンのん?
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-08-30 14:20
[linux-users:96156] [bash]whileループ内変数値の扱いについて教えてください。
http://search.luky.org/linux-users.9/msg06099.html

 bash の場合、Bourne shell と異なりこの辺りの些末な仕様が異
なります。
http://search.luky.org/linux-users.9/msg06102.html


[ メッセージ編集済み 編集者: MMX 編集日時 2004-08-30 14:31 ]
1

スキルアップ/キャリアアップ(JOB@IT)