Sourcing de scripts com um loop for para variáveis diferentes

1

Eu tenho vários scripts de shell que resumi em um script global. Eu estou usando algumas variáveis que são as mesmas em todos os scripts, e eu escrevi um script separado para isso, que eu estou obtendo em cada sub-script. É assim que meu script de variáveis se parece:

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

Meu script global, global.sh, é assim:

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

Agora, preciso alterar a variável NUMBER no meu script de variáveis, executar o script global, alterar o número, executar o script global novamente etc. para cada número de 6 a 15. No momento, estou fazendo isso manualmente toda vez que o script global termina, mas está demorando muito.

    
por Kaly 01.06.2014 / 20:54

1 resposta

1

Primeiro, você precisa adaptar variables.sh para que NUMBER não seja mais definido incondicionalmente:

NUMBER=${NUMBER:-6}

Isso permite que você passe o valor do processo de chamada:

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

Observação geral: Estou surpreso que isso funcione sem export declarações ou set -a .

    
por 01.06.2014 / 21:10