简体   繁体   English

MQ Ksh Shell脚本-陷阱错误

[英]MQ ksh shell script - trap error

I have ksh script as below. 我有如下的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

when I execute it it says 当我执行它说

tdestop.ksh[52]: trap: export LD_LIBRARY_PATH=49648; tdestop.ksh [52]:陷阱:export LD_LIBRARY_PATH = 49648; unset LD_LIBRARY_PATH_BKP_49648: bad trap 未设置LD_LIBRARY_PATH_BKP_49648:错误陷阱

tdestop.ksh- is the script name and its telling error at line 52. tdestop.ksh-是脚本名称及其第52行的错误提示。

Question is what is bad trap ? 问题是什么是陷阱? what is going wrong here ? 这是怎么了? I am not an expert in this area. 我不是这方面的专家。 Sorry if the question is really novice. 抱歉,这个问题真的是新手。

Thanks, Dwija 谢谢,Dwija

The syntax is: 语法为:

trap action signals...

eg 例如

trap 'echo "I caught something"' HUP INT TERM

You have flipped the order of actions and signals, which is why ksh complains. 您已经翻转了动作和信号的顺序,这就是ksh抱怨的原因。 You should instead be using: 您应该改为使用:

trap "export LIBPATH=$LIBPATH_BKP_$$; unset LIBPATH_BKP_$$" 1 2 3 9 15 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM