다양한 변수를 얻기 위해 for 루프를 사용하는 스크립트

다양한 변수를 얻기 위해 for 루프를 사용하는 스크립트

전역 스크립트로 요약한 여러 셸 스크립트가 있습니다. 나는 모든 스크립트에서 동일한 일부 변수를 사용하고 이에 대해 각 첨자에서 얻는 별도의 스크립트를 작성했습니다. 내 변수 스크립트는 다음과 같습니다.

variables.sh
NUMBER="6"
TYPE="${NUMBER}_xyz"
STATE="S05"
DIR="path/file_${NUMBER}_blabla"
FILE="file.txt"

내 전역 스크립트 global.sh는 다음과 같습니다.

source variables.sh
bash script1.sh
bash script2.sh
...

이제 변수 스크립트에서 NUMBER 변수를 변경하고, 글로벌 스크립트를 실행하고, 번호를 변경하고, 글로벌 스크립트를 다시 실행해야 합니다. 6-15의 모든 숫자에 대해. 현재는 전역 스크립트가 완료될 때마다 수동으로 이 작업을 수행하지만 시간이 많이 걸립니다.

답변1

먼저 더 이상 무조건 설정되지 않도록 variables.sh조정 해야 합니다 .NUMBER

NUMBER=${NUMBER:-6}

이를 통해 호출 프로세스에서 값을 전달할 수 있습니다.

for((NUMBER=6;NUMBER<16;NUMBER++)); do
  source variables.sh
  bash script1.sh
  bash script2.sh
done

export종합: 이것이 성명이나 set -a. 없이도 작동한다는 사실에 놀랐습니다 .

관련 정보