perl では、次のようにして、名前のリストを保存して反復処理します。
my @fruit = (apple, orange, kiwi);
foreach (@fruit) {
print $_;
}
同等のものはbashで何ですか?
bash (POSIX sh とは異なり) は配列をサポートします。
fruits=(apple orange kiwi "dried mango")
for fruit in "${fruits[@]}"; do
echo "${fruit}"
done
これには、配列要素にスペースや $IFS の他のメンバーを含めることができるという利点があります。それらが別々の要素として正しく挿入されている限り、それらは同じ方法で読み出されます。
このような:
FRUITS="apple orange kiwi"
for FRUIT in $FRUITS; do
echo $FRUIT
done
果物の名前にスペースがある場合、これは機能しないことに注意してください。その場合は、代わりにこの回答を参照してください。移植性はわずかに劣りますが、はるかに堅牢です。
私が気に入った回答が正解として受け入れられたので、次は別の話題に移りましょうIFS
。個人的な利益のために使用する方法です。:-P
fruits="apple,orange,kiwifruit,dried mango"
(IFS=,
for fruit in $fruits; do
echo "$fruit"
done)
IFS
変更が独自のサブプロセスに分離されるように、コードを括弧で囲みました。したがって、括弧で囲まれたセクションの最後で、IFS
元の値に戻されます。:-)
フォー・アイ・イン・アップル・オレンジ・キウイ 行う エコー $i 終わり