From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4885 invoked by alias); 11 Aug 2017 15:10:16 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 41529 Received: (qmail 12619 invoked by uid 1010); 11 Aug 2017 15:10:16 -0000 X-Qmail-Scanner-Diagnostics: from mx1.redhat.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(209.132.183.28):SA:0(-5.0/5.0):. Processed in 2.524458 secs); 11 Aug 2017 15:10:16 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: kdudka@redhat.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com A62227EAA1 Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=kdudka@redhat.com From: Kamil Dudka To: Bart Schaefer Cc: zsh-workers@zsh.org Subject: Re: [BUG] 'exec' runs shell functions and builtins Date: Fri, 11 Aug 2017 17:10:12 +0200 Message-ID: <10971700.ghLbJLaWGu@kdudka-nb> User-Agent: KMail/4.14.10 (Linux/4.9.34-gentoo; KDE/4.14.32; x86_64; ; ) In-Reply-To: References: <20170727100206.4dda10d9@pwslap01u.europe.root.pri> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 11 Aug 2017 15:10:05 +0000 (UTC) On Friday, July 28, 2017 10:58:59 Bart Schaefer wrote: > On Thu, Jul 27, 2017 at 2:02 AM, Peter Stephenson > > wrote: > > % (setopt posixbuiltins; exec command echo foo) > > zsh: command not found: command > > Chet Ramey emailed me: > ===== > "However, all of the standard utilities, including the regular built-ins in > the table, but not the special built-ins described in Special Built-In > Utilities, shall be implemented in a manner so that they can be accessed > via the exec family of functions as defined in the System Interfaces volume > of POSIX.1-2008 and can be invoked directly by those standard utilities > that require it (env, find, nice, nohup, time, xargs)." > > `command' is explicitly listed in the table in > > http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap01.html#tag > _17_06 ===== > > So "exec command ..." is actually supposed to work, as is "exec read", > "exec getopts", etc. Urk. Today I discovered that bash in Fedora installs /usr/bin/cd and the like as external commands to make 'exec' work on those built-ins (primarily in bash): https://bugzilla.redhat.com/820192 I am really not happy about this solution because the external commands only confuse people for no good reason (other than satisfying the POSIX requirement). It is good that zsh does not need this in its native configuration but how is it supposed to work in the POSIX emulation mode now? % (exec cd) % emulate sh % (exec cd) zsh: command not found: cd If I understand http://www.zsh.org/mla/workers/2017/msg01138.html correctly, then the above command should work? Kamil