From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id a34ed27f for ; Mon, 3 Dec 2018 04:09:53 +0000 (UTC) Received: (qmail 10188 invoked by alias); 3 Dec 2018 04:09:41 -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: List-Unsubscribe: X-Seq: 23782 Received: (qmail 10180 invoked by uid 1010); 3 Dec 2018 04:09:41 -0000 X-Qmail-Scanner-Diagnostics: from mail-it1-f172.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.100.2/25112. spamassassin: 3.4.2. Clear:RC:0(209.85.166.172):SA:0(-2.0/5.0):. Processed in 0.732554 secs); 03 Dec 2018 04:09:41 -0000 X-Envelope-From: pengyu.ut@gmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=LoVNCyIW8AijDkZieT1rRyzyKj6LMe4SdVtkWI03ZWI=; b=VSKmRYmuKOdo9sjvOHMyqRxikqSOvyDoSO4RFOpBKlq2a3MMg9t9hS4Zh3R7L+mwhv TEBlUH2aky4i/JiMJTBB8NGwkWlXeKi5U/6qmydL7KNg8w8MOl5oDsaJDSPXhlNFB5xS RCq/CBUKodv1z/OhYP4gUoV3GFIkVQJcaZ6BKJzgjxMGBt5ci+mj/h7jisfOtqz3Y4Af zoxoadY0ubOwaM3G/x9KkRwjsS62Xs45IFA5m6vqmpaeJY8+zHBKXdS9MTFqZ/lOMiUb 09xxFc/wfpbnYjJL23d5ABym5H3RU9Vkr6lVGQzUUQhqYUzyFrLHTe8eZ9k5orCzXmKK eGPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=LoVNCyIW8AijDkZieT1rRyzyKj6LMe4SdVtkWI03ZWI=; b=lBF6sxqn9hd54fvuZLZDdo09xGVSP7V5Sr9VAbOBSEoZN3QWnaIsTovfpGtZtLgIdP KIp/K68ydxdf1ZY+sRJUq2ywH5Rb/l5QFb9kt7Yh6X59YoFkUggODmc2jrOoFWzhOe0C Vb+P/8N++Ufamb2z9JouPVieE/EQ6FHW395PAD7iDYs1X4qtp8ed7hrqkVFPRkcttJyb v2F66aF7zHFnmoV5NviqiTWF8iA5xe+cOk7nESMIfmBr/4XdLI8hZwi4ajk/Mo3TfyoT eg4lCU3g0x8bomrJbPNt1VUq5X5PlGKUHDfpC/ZyG6olxIWsShKrh7xvR6lK/sHAisZg gjFQ== X-Gm-Message-State: AA+aEWaG0tO91hIDnzXZLLXAM37koo7k80USur0qp1EYDwJFzhHKlkyX /ww/EI6WwnRngY1vQyX0zWV0ZS9P8KNe60plhnk8ZA== X-Google-Smtp-Source: AFSGD/X7AOTCfsgHhshAJPG3iIgjdquRS/6yxWGY4Z6kgPvSIQedZOZ7XbQW5ihrmNfcbrJiiWYKBlu28SHi6vVQ1oo= X-Received: by 2002:a24:6553:: with SMTP id u80mr6361205itb.0.1543810177891; Sun, 02 Dec 2018 20:09:37 -0800 (PST) MIME-Version: 1.0 From: Peng Yu Date: Sun, 2 Dec 2018 22:09:37 -0600 Message-ID: Subject: How to trap to script EXIT instead of function EXIT? To: zsh-users Content-Type: text/plain; charset="UTF-8" Hi, The following example shows that `trap` inside a function is trapped to the function. This behavior is different from bash. Is there a way to make it the same as bash? $ cat main.sh #!/usr/bin/env zsh # vim: set noexpandtab tabstop=2: set -v function f { trap "echo 'Hello World!'" EXIT trap } f trap $ ./main.sh function f { trap "echo 'Hello World!'" EXIT trap } f trap -- 'echo '\''Hello World!'\' EXIT Hello World! trap $ cat ./main.bash #!/usr/bin/env bash # vim: set noexpandtab tabstop=2: set -v function f { trap "echo 'Hello World!'" EXIT trap } f trap $ ./main.bash function f { trap "echo 'Hello World!'" EXIT trap } f trap -- 'echo '\''Hello World!'\''' EXIT trap trap -- 'echo '\''Hello World!'\''' EXIT echo 'Hello World!' Hello World! -- Regards, Peng