1

ubuntu 12.04 bashのシェルスクリプトでこのコードを試しました

IFS=$'\t'
name=(one two three four five)
fam=($(seq -s" " 1 1 5))
for (i=0;i<5;i++) 
do 
  printf "%s\t%s\n" ${fam[i]} ${name[i]} 
done

私が望む出力はそのようなものです

1 one
2 two
3 three
4 four
5 five

しかし、実際の出力は

1 2 3 4 5   one
two 
three   
four    
five

私のコードで何が問題になったのですか? 1つのループを使用して複数の配列変数を1行に出力する方法は?

4

2 に答える 2

2
name=(one two three four five)
fam=(1 2 3 4 5)

for i in ${!name[*]}
do
  printf '%s %s\n' ${fam[i]} ${name[i]}
done

または、単に修正できます

for  (i = 0; i < 5; i++)
for ((i = 0; i < 5; i++))
于 2013-06-20T07:56:34.193 に答える