Có một vài cách thức để thực hiện debug một shell script trong quá trình chạy.
Sử dụng tùy chọn -x trong lời gọi shell
Thêm option -x vào trong lệnh gọi shell để chạy script, ví dụ:
[oracle@db backupdb]$ sh -x rman_backup_test.sh
+ echo oracle
oracle
+ ORACLE_SID=dnict
+ export ORACLE_SID
+ ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
+ export ORACLE_HOME
+ LOG_DIR=/home/oracle/backupdb/rman_backup_logs
+ export LOG_DIR
+ CMD_DIR=/home/oracle/backupdb/rman_backup_cmds
+ export CMD_DIR
++ date +%d%m%Y
+ DATE_STRING=01032012
+ export DATE_STRING
+ logfile=/home/oracle/backupdb/rman_backup_logs/auto_backup_rman_01032012.log
++ ls /home/oracle/backupdb/rman_backup_logs
++ grep 01032012
++ wc -l
+ append_number=0
+ '[' 0 -gt 0 ']'
++ date +%a
+ TODAY=Thu
+ export TODAY
+ echo 'today: Thu'
today: Thu
+ '[' Thu = Sun -o Thu = Thu ']'
+ echo 'Today is Sunday or Thusday, then execute full backup script'
Today is Sunday or Thusday, then execute full backup script
+ echo 'Finished!'
Finished!
Trong output ở trên, các dòng mở đầu với dấu + là kết quả thực thi từng lệnh, còn các output không có dấu + là kết quả sinh ra do lệnh echo trong script. Dòng có ++ là kết quả của việc thực thi một lệnh shell con bên trong một lệnh shell khác
Sử dụng lệnh set -x trong script
Cách thức tương tự như tùy chọn -x trong lời gọi shell. Ta có thể sử dụng lệnh set -x trong chuỗi lệnh của script để thiết lập chế độ debug cho script và set +x để tắt chế độ này. Ví dụ:
#!/bin/bash
clear
# turn on debug mode
set -x
for f in *
do
file $f
done
# turn OFF debug mode
set +x
ls
# more commands
Tham khảo: http://www.cyberciti.biz
No comments:
Post a Comment