Ainda sou novo no Bash e só posso usar o Bash 3 no trabalho. Estou tentando construir um processo que me permita conectar a todos os nossos bancos de dados ( DEV
/ TEST
/ PROD
).
Eu tenho um arquivo chamado environments.sh
#!/bin/bash
## 0 = Password, 1 = HOST, 2 = SERVICENAME
## List of all Environments
ENV[0]=DEV
ENV[1]=TEST
ENV[2]=PROD
## Dev Env Details
DEV[0]=SU_DBA_201503
DEV[1]=xxxxxx-Dev-xx.xxx.xxx.xxx #<-- I edited this for security purposes
DEV[2]=dev.xxx.xxx
## Test Env Details
TEST[0]=DBA_PN_0002
TEST[1]=xxxxxx-Test-xx.xxx.xxx.xxx
TEST[2]=test.xxx.xxx
## Prod Env Details
PROD[0]=TM_DB_US7a6a
PROD[1]=xxxxxx-Prod-xx.xxx.xxx.xxx
PROD[2]=prod.xxx.xxx
Então, essencialmente, meu objetivo é percorrer todos os ambientes ( DEV
, TEST
, PROD
) e acessar os atributos de cada array para criar uma string de conexão.
Neste ponto, eu tenho um novo arquivo (para fins de teste, eu chamo de looper.csh
:
#!/bin/bash
#Get environments
source ./environments.sh
for env in ${ENV[@]}
do
echo Current Env $env
cur_env=$env
for attr in ${cur_env[@]}
do
# Will eventually build connection string but for now, just want to echo
echo $attr
done
done
Mas quando eu corro isso, isso me dá um erro na linha:
for attr in ${cur_env[@]}
Eu tentei algumas maneiras diferentes para substituir isso corretamente, mas não tenho certeza do que estou fazendo de errado.
Toda e qualquer orientação seria muito apreciada.