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