From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 17726 invoked from network); 11 Jun 2021 19:53:41 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 11 Jun 2021 19:53:41 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1623441221; b=ULf6z99zXtKPs3mv5SNvlVktN+1vsta5s9Xwx7Cif9105gCQpZeItyFSYSH5VGWAxa2sAcLbrO W/QmLQZcfIaKJ1IO147cD269aHIGsvy/UNzat0ZX94PYc/euLg0uzPlz56wjK1lWZptxY/s4pA O2S3MRHxI6QgCmVVxDj8lGCiPyxGKB1Vu+JfFxrdaBpzoxS/hONR/U1alfUnw0NHB80qc50EKP lyyt/omBH9TdOg7y0ZxQ/XyMFffM0SAgIStsmjtzvnNAy30zo0Ue6YtHoMAX0dGH8rFy5cNMNK 5H9O/AaQc/GOCPuEym91OPmQUujFbxiL42q/7Ow7kEpQ7A==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (relay6-d.mail.gandi.net) smtp.remote-ip=217.70.183.198; dmarc=none header.from=chazelas.org; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20200801; t=1623441221; bh=YZbjYdyOabjcP733lHQ7oS4msExh6wc0lxhFrnHevRc=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:In-Reply-To:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:DKIM-Signature; b=V5h1GwO1/jCWrtmp4joNBmTcWK8px4KBgwzeBoYT8r59rdEPUCsFhjHbFddRn+VTpBBwoGl2pl NLts7JzR7m8+f7MDUQVNVHDxv8R3p5uGWJtE2qSV6X43qgpWConNmkljOx+bA1A/lE3KfBXsgO cxepptsbwwzx0EmN8Qids6PfTWYcl2VlvT4j7umIMHLkDVzlX8pJxbGBhUYbYJ57EVc+5J7I1v WfTf7GCKg6Khbb1OqZgpJTYsw+Okr5cFrrWc23SDRBJcn3N381IIv7CgixaQbl/oP9nNJTDLgt 12sfjJRhhyTD23UNGNPx3Loh2rOhr25ZYgNstjOh8HGFjA==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=OrvjV+3PVxkchP+vZDIO1WA2TDhzQNibJKU2Xl4SaFk=; b=R3Qx8M+pPXMrvD0lVNUs2dtbJp nUOYOqcVuO0g5P4iOACu2Wf0E2aoOG+AIk6hCtIQ6Yk0iiqIh5FL+CMHVsREJE179Sj4eI8vKnfLc L53k/DZA+5qwgNyoYmJSUbSH5hkl/XlfOg4Jgc615JFri1T1d2y2PEjXENSJlvEIasrNM+NhvGYdT NJoyiXB3eY+Oo8yMolNZK4HR+bgHhA79FATByN5WRfdO6jk3gkJ2xWth9tLfduH0c7YdbHsXm0y3Z +hnmC/cYuk475SyEziJGrNfQ4QsSmVdCHWFgH5TxSgisYrEUhp5p3qtmVU0p1FXBBEyV4jSgLvzIl 3Vo28cjQ==; Received: from authenticated user by zero.zsh.org with local id 1lrnDo-000Bpg-Cz; Fri, 11 Jun 2021 19:53:40 +0000 Authentication-Results: zsh.org; iprev=pass (relay6-d.mail.gandi.net) smtp.remote-ip=217.70.183.198; dmarc=none header.from=chazelas.org; arc=none Received: from relay6-d.mail.gandi.net ([217.70.183.198]:55839) by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) id 1lrnDY-000BXn-Jt; Fri, 11 Jun 2021 19:53:25 +0000 Received: (Authenticated sender: stephane@chazelas.org) by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 87868C0004; Fri, 11 Jun 2021 19:53:23 +0000 (UTC) Date: Fri, 11 Jun 2021 20:53:22 +0100 From: Stephane Chazelas To: Zach Riggle Cc: zsh-workers@zsh.org Subject: Re: Where is this =(:) construct documented? Message-ID: <20210611195322.4tnhhppbjpddi2tv@chazelas.org> Mail-Followup-To: Zach Riggle , zsh-workers@zsh.org References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Seq: 49059 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: 2021-06-11 14:17:08 -0500, Zach Riggle: > It's insane, cool, and I can't find this documented anywhere. It > creates a temporary file that is automatically deleted... but only > after the line / expression terminates. [...] > What's more insane is that the temporary file will be auto-populated > with the output of the =() construct. Where is THAT documented? [...] See info zsh "Process Substitution" Or: https://zsh.sourceforge.io/Doc/Release/Expansion.html#Process-Substitution That's the third form of process substitution. ksh introduced the first two <(...) and >(...) in the 80s. zsh added that third form in the 90s. While A <(B) and A >(B) are IPC mechanisms in that A and B are started concurrently and connected via a pipe (<(B) and >(B) expand respectively to the path of the reading of a pipe and writing end of a pipe, in A =(B), B is started first, its output collected into a temp file, and the path of that temp file passed to A when B has finished (and later removed when A finishes). -- Stephane