ループを介した変数の生成と値の割り当て

ループを介した変数の生成と値の割り当て

bash変数を生成し、ループを介して値を割り当てる方法はありますか?

おおよそ次のようになります。

#!/bin/bash

c=0
for file in $( ls ); do
    var"$c"="$file";
    let c=$c+1;
done

編集:これがリストの悪い選択肢であることを指摘した@Costasと@mdpcに感謝します。質問は単に理論的です。

答え1

まあ、あなたは間違いなく使用することができます評価する次のように:

c=0
for file in $( ls ); do
    eval "var$c=$file";
    c=$((c+1));
done

このコードは、それぞれファイル名を含むvar0、var1、var2 ...という変数を生成します。配列を使用してこれを行うには妥当な理由があると思います。

答え2

たぶん配列を意味するかもしれません。いくつかの割り当て方法があります。

最初:

c=0
for file in $( ls ); do
    var[$c]="$file";
    c=$(($c+1));
done

第二:

c=0
for file in $( ls ); do
    var[c++]="$file";
done

第三:

for file in $( ls ); do
    var[${#var}]="$file";
done

第四:

var=( $(ls) )

...

  1. 使用する必要なしにすべてのファイルをls配置するだけです。*
  2. []ロゴは$省略可能

関連情報