运行前检查脚本的输出

运行前检查脚本的输出

我有一个 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 命令感兴趣。

相关内容