• 締切済み

シェル変数の有効範囲に関して質問させて下さい。

シェル変数の有効範囲に関して質問させて下さい。 while文にて代入した変数を、その後も使用したいと考えております。 以下、試してみた内容です。 ---------------------- # cat /WORK/test_clice sda sda1 sda2 sda3 sda4 sda5 sda6 sda7 sda8 sdb # declare -a clice # declare -i count # cat /WORK/test_clice | while read LINE; do count=`expr $count + 1`; clice[${count}]=${LINE}; echo ${clice[${count}]} ; done sda sda1 sda2 sda3 sda4 sda5 sda6 sda7 sda8 sdb # echo ${clice[1]} # ---------------------- 有効範囲の為、引き継がれていないのかな?と考えております。 試しに、「set」や「export」を使用してみたのですが、旨く行きませんでした。 ※使い方が悪い? 基本的な内容となり恐縮ではございますが、知恵をお借りできませんでしょうか。 よろしくお願い致します。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

パイプを使っているので while がサブシェル内で実行されているんでしょう. read の -a オプションが使えるかもしれないし使えないかもしれない.

un-G
質問者

補足

ご解答ありがとうございます。 その後「-a」オプションを使用して、試してみましたが、旨く行きませんでした。 また、シェルに関しても色々はサイトを探してみましたが、良い情報は得られませんでした。 お忙しい中、対応いただきありがとうございました。

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

シェルは何ですか?bash?csh?ksh?

un-G
質問者

補足

SaKaKashi 様 > シェルは何ですか?bash?csh?ksh? 失礼致しました。Bシェルなので、「bash」となります。

関連するQ&A