運行前檢查腳本的輸出

運行前檢查腳本的輸出

我有一個 bash 腳本可以執行一些資料庫作業。該腳本的部分內容:

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 
.
.

在執行此操作之前,我想知道變數是否正確放置在每一行中。這可能嗎?
例如我想要這樣的東西:

  BACKUP DATABASE mydb1 TO /dbdata1/mtdb1Backup
  /bin/db2 connect to mydb1 
  BACKUP DATABASE mydb1 TO /dbdata2/mtdb1Backup
  /bin/db2 connect to mydb2  

在我檢查一切正確後,我運行它們。

答案1

在您的程式碼中,您正在建構一個 SQL 語句或一個 SQL 語句列表,並將其提供給資料庫伺服器。不是呼叫將在伺服器上執行語句的命令,而是將語句輸出到終端。

如果你原來的命令是

some_db_command "$backupsql"

那麼你可以將其替換為

printf '%s\n' "$backupsql"

如果腳本隨後繼續執行可能依賴這些 SQL 命令執行的其他操作,則exit在此之前插入 。您只對查看已傳送至資料庫伺服器的 SQL 命令感興趣。

相關內容