
だから私は変数を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