"2" 변수를 사용하여 bash에서 변수 반복

"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

관련 정보