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