Eu tenho um script bash que executa alguns trabalhos de banco de dados. partes deste script:
DBNAME_ARRAY=( mydb1 mydb2 )
DB2PATH=/bin/db2
BACKUPLOGPATH=/data1/`date +%y-%m-%d`_BACKUP.out
IP=170.10.20.11
.
.
for DBNAME in "${DBNAME_ARRAY[@]}"
do
BACKUPSQL="BACKUP DATABASE $DBNAME TO /dbdata1/${DBNAME,,}Backup"
$DB2PATH connect to $DBNAME
.
.
antes de executar isso, quero saber se as variáveis são colocadas em todas as linhas corretamente. Isso é possível?
por exemplo eu quero algo assim:
BACKUP DATABASE mydb1 TO /dbdata1/mtdb1Backup
/bin/db2 connect to mydb1
BACKUP DATABASE mydb1 TO /dbdata2/mtdb1Backup
/bin/db2 connect to mydb2
depois de verificar se tudo está correto, eu os executo.
Responder1
Em seu código, você está construindo uma instrução SQL, ou uma lista de instruções SQL, que será fornecida a um servidor de banco de dados. Em vez de invocar o comando que executaria as instruções no servidor, envie as instruções para o terminal.
Se o seu comando original foi
some_db_command "$backupsql"
então você poderia substituir isso por
printf '%s\n' "$backupsql"
Se o script continuar fazendo outras coisas que podem depender da execução desses comandos SQL, insira um exit
antes que isso aconteça. Você está interessado apenas em ver os comandos SQL que teriam sido enviados ao servidor de banco de dados.