いくつかのデータベース操作を実行する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コマンドを表示することにのみ興味があります。