ループを介して変数値を印刷します。

ループを介して変数値を印刷します。

次の文を使用して以下の変数を印刷するためにforループを使用していますが、値が正しく印刷されません。繰り返し値のみを提供します。誰でも私を助けることができますか?

value1="1500067"
value2="1500068"
value3="1500069"
package1="CNN"
package2="FOX"
package3="Discovery"

for iteration in {1..3}
do
echo ""$value""$iteration" - "$package""$iteration""
done

予想出力:

1500067 - CNN
1500068 - Fox
1500069 - Discovery

ベストアンサー1

次のタスクには実際に配列を使用する必要があります。

#!/bin/bash
values=( 
    1500067
    1500068
    1500069
)
packages=( 
    CNN 
    FOX 
    Discovery
)

for (( i=0; i < ${#values[@]}; i++ )); do
    echo "${values[i]} - ${packages[i]}"
done

または、自然なキーと値のペアがあるため、連想配列

#!/bin/bash
declare -A packages=( 
    [1500067]=CNN 
    [1500068]=FOX 
    [1500069]=Discovery
)

for key in "${!packages[@]}"; do
    echo "$key - ${packages[$key]}"
done

おすすめ記事