일부 데이터베이스 작업을 수행하는 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 명령을 보는 데에만 관심이 있습니다.