【发布时间】:2015-02-07 04:58:24
【问题描述】:
我在一个在 Linux 上运行良好的 bash 脚本中使用了 getopt。但是在AIX上执行时,输出就不一样了:
AIX 输出
TEMP=$(getopt -o d:hi: --long database:,help,instance: -n ${APPL_NAME} -- "${@}")
getopt -o d:hi: --long database:,help,instance: -n ${APPL_NAME} -- "${@}"
++ getopt -o d:hi: --long database:,help,instance: -n check_database_connection -- -i /db2/db2ez1 -d EZ1 -vvv
+ TEMP='-- d:hi: --long database:,help,instance: -n check_database_connection -- -i /db2/db2ez1 -d EZ1 -vvv '
Linux 输出
TEMP=$(getopt -o d:hi: --long database:,help,instance: -n ${APPL_NAME} -- "${@}")
getopt -o d:hi: --long database:,help,instance: -n ${APPL_NAME} -- "${@}")
getopt -o d:hi: --long database:,help,instance: -n ${APPL_NAME} -- "${@}"
++ getopt -o d:hi: --long database:,help,instance: -n nagios -- -i /home/db2inst1 -d sample
+ TEMP=' -i '\''/home/db2inst1'\'' -d '\''sample'\'' --'
如您所见,TEMP 中的值在 AIX 中无效,脚本无法继续。
为什么会出现这个问题?怎么解决?
这是一个开源脚本托管在:https://github.com/angoca/monitor-db2-with-nagios/blob/master/check_database_connection
【问题讨论】: