2017-06-14 5 views
0

これはおそらく重複としてマークされますが、複数の投稿を読んだ後でも、私はまだbashスクリプトを動作させることができません。 私は複数行のテキストファイルを持っています。各行には1つの文字列しかありません。私はbash変数にコンテンツをインポートしたい、例えば各行は別々の要素です。したがって 、MYVARが挙げ可変である場合、一例として、私は、例えば、その位置によって任意の要素にアクセスできるようにしたい:テキストファイルから複数の行をbash変数にフィード

for i in $(seq 0 2) 
do 
     echo ${MYVAR[$i]} 
done 

上記は単なる一例です。私はforループを必要としないので、私はwhile read LINE戦略を使用していません。 私はいくつかの方法を試しましたが、ファイル全体を含む1つの長い文字列としてインポートされ続けます。私の目的がはっきりしていることを願っています。 IFSだけNEWLINE、および()で配列にファイルを読み込むための

+0

は、なぜあなたは 'しばらくread'ループを使用していませんか? – 123

+1

タグwikiをチェックしてください:https://stackoverflow.com/documentation/bash/471/arrays#t=201706142015390919367 – codeforester

答えて

1

変更:

OFS=$IFS 
IFS=$'\n' 
MYVAR=($(<myfilename.txt)) 
for i in $(seq 0 2) 
do 
     echo ${MYVAR[$i]} 
done 
# setup the IFS to its original value 
IFS=$OFS 
+1

ありがとう、それは働いた! 今朝、もっと心がけて、スクリプトを見直しました。私が困惑させたのは、デフォルトでIFSがスペース、改行、およびタブでなければならないということです。したがって、上記のスクリプトはIFSを変更しなくても動作するはずです。 MYVAR =($( madmaxthc

関連する問題