set -e覆盖bash脚本中的参数变量($ @)

时间:2012-03-09 05:50:25

标签: linux bash

我有一个脚本test.sh

#/!bin/bash
set -e
trap errorhandler ERR

errorhandler(){
    status=$?
    trap - ERR
    exit $status
}

echo "$@"

exit 0

当我致电sh test.sh 'Hey'时,它会打印-e而不是Hey

我的工作是带有反引号的set -e,但不知道它是否仍能正常工作

另一种解决方法是将它存储在第一行的变量中,但我希望第一行中的set -e有一个明显的原因(处理错误)。

有一个聪明的方法来做到这一点?比如“嘿,不要触摸我的$ @”命令。

1 个答案:

答案 0 :(得分:4)

知道了! -e–e注意到破折号。第一个是正确的。

学过的知识。不要直接从html中复制代码。