저는 그룹에 처음 왔기 때문에 실수나 잘못된 표현의 질문에 대해 사과드립니다. 이것이 내 문제입니다. 변수 배열이 있습니다. 나는 가능한 모든 조합으로 동시에 다른 작업(예: 다른 작업)을 시작하고 싶습니다. 내가 어떻게 해야 할지 모르는 것은 가능한 모든 변수 조합에 순차적으로 접근하는 것입니다.
다음은 각 반복에서 변수 세트를 인쇄하는 테스트 bash 스크립트입니다. 예상했던 것보다 훨씬 더 많은 내용을 인쇄하기 때문에 나에게는 좋지 않은 것 같습니다. 2, 3, 4개의 변수가 있는 3개의 배열이 있으므로 총 2 * 3 * 4 = 24개의 작업이 필요합니다. 누군가 내가 뭘 잘못하고 있는지 또는 더 좋고 깨끗한 방법이 있는지 설명할 수 있습니까?
다음은 작은 예입니다.
#!/bin/bash
#$ -N combi_test
#$ -t 1-24
ACQ=('ei')
VAR=('sh' 'rbf')
TRAIN=(1000 2000 3000)
ANGLES=(10 20 30 40)
for i in "${!ANGLES[@]}"; do
for j in "${!VAR[@]}"; do
for k in "${!TRAIN[@]}"; do
echo "IS_${ACQ}_tr${TRAIN[k]}_${ANGLES[i]}_${VAR[j]}.h5"
done
done
done
미리 감사드립니다!
답변1
노력하다:
parallel echo "IS_${ACQ}_tr{3}_{1}_{2}.h5" ::: "${ANGLES[@]}" ::: "${VAR[@]}" ::: "${TRAIN[@]}"