From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19800 invoked by alias); 14 May 2014 14:45:57 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: X-Seq: 18803 Received: (qmail 11447 invoked from network); 14 May 2014 14:45:51 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SPF_HELO_PASS autolearn=ham version=3.3.2 X-AuditID: cbfec7f5-b7fae6d000004d6d-db-53737f411e2e Date: Wed, 14 May 2014 15:35:44 +0100 From: Peter Stephenson To: zsh-users@zsh.org Subject: Re: Stop script if one command returns != 0 Message-id: <20140514153544.44c4cd7b@pwslap01u.europe.root.pri> In-reply-to: <355857b792fd08eade06510fd648684d@xgm.de> References: <355857b792fd08eade06510fd648684d@xgm.de> Organization: Samsung Cambridge Solution Centre X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupmluLIzCtJLcpLzFFi42I5/e/4VV3H+uJgg9XzeCx2nFzJ6MDoserg B6YAxigum5TUnMyy1CJ9uwSujEefr7MWrGOvaN24grmB8RxrFyMnh4SAicTmyY/YIGwxiQv3 1gPZXBxCAksZJZ4sXcEE5TBJfL43mxGkikVAVWLzq+9g3WwChhJTN0HERQREJZav2MwOYgsD Tb2/YhGQzcHBK2AvsX5PBEiYU8BM4uP1v4wgYSGBRInXl61AwvwC+hJX/35igrjBXmLmlTNg E3kFBCV+TL7HAmIzC2hJbN7WxAphy0tsXvOWeQKjwCwkZbOQlM1CUraAkXkVo2hqaXJBcVJ6 rpFecWJucWleul5yfu4mRkgAft3BuPSY1SFGAQ5GJR7en6uKgoVYE8uKK3MPMUpwMCuJ8LbW FgcL8aYkVlalFuXHF5XmpBYfYmTi4JRqYDwqv7k7+K5Ui258vYRjaBn7zaqPq799+n/y3jd+ lcB8Hunst5Up4h/+56QuWliV/5ppSdpro+P/brKnR9/zZTbgSLRqY/pwTDzoLdNCzX+Hvk7K qX/CEHTSojZz2w7tdwxpice1Vur//8b9PNBzT8H5q2eu89+7Wxa3/4BjFkvUuUqm4uXBa5VY ijMSDbWYi4oTATC25nMeAgAA On Wed, 14 May 2014 16:21:55 +0200 Florian Lindner wrote: > Ok, just a second after the mail I learned about set -e. The problem is > when sourcing the script it kills my entire shell. > > I tried installing a trap > > trap 'echo "Hallo"' TERM INT ABRT EXIT > > (just a as first shot, trying to catch almost anything) but changed > nothing. > > Any ideas how do deal with that? Wrap your sourced file in a function and use the zsh-specific option ERR_RETURN. source_with_err_return() { setopt localoptions errreturn source "$@" } Test: % >script print Got here false print But not here % source_with_err_return ./script Got here & for the paranoid: % fn2() { function> source_with_err_return ./script function> false function> print Got here OK as ERR_RETURN is no longer on. function> } % fn2 Got here Got here OK as ERR_RETURN is no longer on. pws