"2"変数を使用してbashで変数を繰り返す

だから私は変数を1つ繰り返す方法を知っています。

folder="(first|second|third)"
for i in "${folder[@]}"; do
  rclone move /mounts/$folder/cache
done

しかし、2歳になったらどうすればいいですか?

folder="(first|second|third)"
mount="(something1|something2|something3)"
for i in "${folder[@]}"; do
  rclone move /mounts/$folder/cache $mount
done

したがって、スクリプトは各フォルダを繰り返して正しいインストールを追加する必要があります。

最後に、実行は次のようになります。

 rclone move /mounts/first/cache something1
 rclone move /mounts/second/cache something2
 rclone move /mounts/third/cache something3

ベストアンサー1

配列を繰り返す必要があります。索引価値ではなく数字。これは${!folder[@]}構文を使用して行われます。

これにより、ループ内の同じインデックスを介して両方の配列にアクセスできます。

たとえば(echoこの例では最初に入力)

folder=(first second third)
mount=(something1 something2 something3)
for i in "${!folder[@]}"; do
  echo rclone move /mounts/${folder[$i]}/cache ${mount[$i]}
done

出力されます

rclone move /mounts/first/cache something1
rclone move /mounts/second/cache something2
rclone move /mounts/third/cache something3

おすすめ記事