MQ ksh shell 脚本 - 陷阱错误
MQ ksh shell script - trap error
我有如下的 ksh 脚本。
if [ `uname` == "AIX" ]; then
export LIBPATH_BKP_$$=$LIBPATH
# Trap so that it will return the original library path when script exits
trap 1 2 3 9 15 "export LIBPATH=$LIBPATH_BKP_$$; unset LIBPATH_BKP_$$"
export LIBPATH=/usr/mqm/lib:$LIBPATH
else # All else will be either Linux or Solaris which uses LD_LIBRARY_PATH
export LD_LIBRARY_PATH_BKP_$$=$LD_LIBRARY_PATH
# Trap so that it will return the original library path when script exits
trap 1 2 3 9 15 "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH_BKP_$$; unset LD_LIBRARY_PATH_BKP_$$"
export LD_LIBRARY_PATH=/usr/mqm/lib:$LD_LIBRARY_PATH_BKP_$$
fi
当我执行它时它说
tdestop.ksh[52]:陷阱:导出LD_LIBRARY_PATH=49648;取消设置 LD_LIBRARY_PATH_BKP_49648:错误陷阱
tdestop.ksh- 是脚本名称及其第 52 行的错误提示。
问题是什么是坏陷阱?这里出了什么问题?我不是这方面的专家。对不起,如果这个问题真的是新手。
谢谢,
德维亚
语法是:
trap action signals...
例如
trap 'echo "I caught something"' HUP INT TERM
您颠倒了动作和信号的顺序,这就是 ksh
抱怨的原因。您应该改为使用:
trap "export LIBPATH=$LIBPATH_BKP_$$; unset LIBPATH_BKP_$$" 1 2 3 9 15
我有如下的 ksh 脚本。
if [ `uname` == "AIX" ]; then
export LIBPATH_BKP_$$=$LIBPATH
# Trap so that it will return the original library path when script exits
trap 1 2 3 9 15 "export LIBPATH=$LIBPATH_BKP_$$; unset LIBPATH_BKP_$$"
export LIBPATH=/usr/mqm/lib:$LIBPATH
else # All else will be either Linux or Solaris which uses LD_LIBRARY_PATH
export LD_LIBRARY_PATH_BKP_$$=$LD_LIBRARY_PATH
# Trap so that it will return the original library path when script exits
trap 1 2 3 9 15 "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH_BKP_$$; unset LD_LIBRARY_PATH_BKP_$$"
export LD_LIBRARY_PATH=/usr/mqm/lib:$LD_LIBRARY_PATH_BKP_$$
fi
当我执行它时它说
tdestop.ksh[52]:陷阱:导出LD_LIBRARY_PATH=49648;取消设置 LD_LIBRARY_PATH_BKP_49648:错误陷阱
tdestop.ksh- 是脚本名称及其第 52 行的错误提示。
问题是什么是坏陷阱?这里出了什么问题?我不是这方面的专家。对不起,如果这个问题真的是新手。
谢谢, 德维亚
语法是:
trap action signals...
例如
trap 'echo "I caught something"' HUP INT TERM
您颠倒了动作和信号的顺序,这就是 ksh
抱怨的原因。您应该改为使用:
trap "export LIBPATH=$LIBPATH_BKP_$$; unset LIBPATH_BKP_$$" 1 2 3 9 15