2016-12-05 6 views
0

次のシェルスクリプトでは、p1.txtとp2.txtに2つの配列を格納して表示します。シェルスクリプト内の配列のエラー

cat p1.txt | awk '{for(i=1;i<NF;i++) {party1[$i-1]=$i}}' 
cat p2.txt | awk '{for(j=1;j<NF;j++) {party2[$j-1]=$j}}' 
for ((k=1;k<10;k++)) 
do 
    echo "${party1[$k]}" 
    echo "${party2[$k]}" 
done 

ただし、デフォルトのshで実行すると、構文エラー:ループ変数が不正です。 bashで実行すると数字は表示されません。 スクリプトの何が問題ですか?

+0

POSIX SH doens'tサポートを '使用することができます((...));します。 bashを使用します。 – andlrc

+0

私はbashを使っていますが、表示されている数字は表示されません。 – haik

+0

アレイの部分については、それをカバーする素晴らしい答えが既にあります。 – andlrc

答えて

1

あなたがこの

#!/bin/bash 
IFS=' ' read -r -a party1 <<< $(cat p1.txt) 
IFS=' ' read -r -a party2 <<< $(cat p2.txt) 

for ((k=1;k<10;k++)) 
do 
    echo "${party1[$k]}" 
    echo "${party2[$k]}" 
done 
+0

Thx。私はこれを試みたが、まだ番号が表示されることはできません。 – haik

+1

配列はインデックス '0'で始まります:' for((k = 0; .... ' – andlrc

+0

@haik、私はこれを助けることができますか? –

関連する問題