簡體   English   中英

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]:陷阱:export LD_LIBRARY_PATH = 49648; 未設置LD_LIBRARY_PATH_BKP_49648:錯誤陷阱

tdestop.ksh-是腳本名稱及其第52行的錯誤提示。

問題是什么是陷阱? 這是怎么了? 我不是這方面的專家。 抱歉,這個問題真的是新手。

謝謝,Dwija

語法為:

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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM