如果发生任何错误,则返回unix函数

时间:2015-06-16 07:20:36

标签: function unix runtime-error exit

我有一个unix脚本,我在其中调用函数。 我希望函数应该在任何命令失败的情况下立即返回。

但检查$?在每一个命令之后我都做不到。还有其他办法吗?

2 个答案:

答案 0 :(得分:1)

可能逐行从文件中运行脚本(当然,因为每个函数的行长一行)。

也许以下脚本可以作为起点:

#!/bin/sh

while read l
do
  eval "$l || break"
done <<EOF
  echo test | grep e
  echo test2 | grep r
  echo test3 grep 3
EOF

答案 1 :(得分:0)

这是我之前回答后的另一个想法。它适用于 bash 脚本,并且要求您的功能非常简单(管道可能会导致一些问题):

#!/bin/bash

set -o monitor

check() {
  [ $? -eq 0 ] && exit
}

trap check SIGCHLD

/bin/echo $(( 1+1 ))
/bin/echo $(( 1/0 ))
/bin/echo $(( 2+2 ))

此外:函数需要是外部命令(这就是我使用/bin/echo而不是echo)的原因。问候。