verifique a saída de um script antes de executar

verifique a saída de um script antes de executar

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 exitantes que isso aconteça. Você está interessado apenas em ver os comandos SQL que teriam sido enviados ao servidor de banco de dados.

informação relacionada