実行前にスクリプトの出力を確認する

実行前にスクリプトの出力を確認する

いくつかのデータベース ジョブを実行する 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 コマンドのみを確​​認する必要があります。

関連情報