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.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 14030 invoked from network); 11 Jun 2021 19:20:22 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 11 Jun 2021 19:20:22 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1623439222; b=v2oPkgVTSbT81iWYPI0O8KhTe5arps8ibdLUTCoJUWlFR4BoXqa+zJnH8IXQ3AqINAEFf8FUv1 ntmLkL4luEcXM2182ic6/Yk2y2FByyYHvH+5QvuZ5VnCs6pHgsTqor5DvhIuAMDSaJU/GlMmn5 uE12Ud7pvvuGrX+LrlAx5MsN06vXsbuiN9EPK9Ux7A6q60gv/btV8PLV/OcrtOsdDaCqxvKMF8 HIRITOF6Pc5xy3kKa75SeMKV1sSGLiW9jOjaGIv1gzdRKpUmrDuC/Wo+1ie9tnP0B/T0BJDgvw agCGklWSuX1laNpCwlaZ05XEyG2xYUD6jjPoLFRLTYAhnA==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-wm1-f53.google.com) smtp.remote-ip=209.85.128.53; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20200801; t=1623439222; bh=gIgnpDCs9D/9SEp1sUf2CgAWazqbmhCo0dC1kdaCbmE=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=cdHaZ7k+M5k0q3Rfwk8l/1FReUlqO2z5aVA/jaqLfMyIQZx+EWm/0Pp4jbn+OcJEiqSOxmkyKH YAx0Lm/PAFRDXW2r5jxgJgePW2larZMIRb9Qng7pCmN7StEMEqXmSD/m64h/SS9pGp++aj3/cD earD5WI7k1gabEHi/2HDJHA6ntSxe2issNKrmRPqyahuSyz07iPHyAX8/hbtFulJxBFKdUTRNa WmG/6NT+WlKPEBmtdkiBTJKbbSGzLOV3d9tf50xg/72PlfL9l1sYg+7VqGaFuc+9d/kSkwIstV voTf49EJnTqL7MdmUfRMj1HyzGJURSTK5gQqQSIyEgF5Ng==; 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:Content-Type:To:Subject:Message-ID: Date:From:In-Reply-To:References:MIME-Version:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=X/sdjJe6yt3diPx8ikiMHADQg4KUYSw7HxD+QdxVGV8=; b=Fvk6gDX40mIkLthIcFEusex4/3 m/QxXSOw2m2GD+FSkhdHrBDt2yUoSDv5yt0d7pOsZc53OAT5LCqmJDd+w2jBt5jgrcYZ0WoIQmQYp 0DUEHJcxtNbD3+Mm1FlYRexWih/1xRaLJpoDU0Rgg5qWDpRO1SVD0H7U+G03vHAqhTMHIaU8eit4y 8ovGxNZuczwhsjYRC/zJwE7Xkf8PWu2bFn8Xrk4w+KA6xLXIEWlbZZ/sAb51Nyqjgupq7TiHpT1F9 WB2dunwZzjaFgzf185JOMXwwJQgXP2yN0+Nd3uW/DDtBycQ3BOdUSZ3Bwrv9bciFrGtrPYCdMDTf5 o5V1Wbeg==; Received: from authenticated user by zero.zsh.org with local id 1lrmhZ-0009zd-Sj; Fri, 11 Jun 2021 19:20:21 +0000 Authentication-Results: zsh.org; iprev=pass (mail-wm1-f53.google.com) smtp.remote-ip=209.85.128.53; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-wm1-f53.google.com ([209.85.128.53]:56307) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1lrmg7-0009Zy-Cu; Fri, 11 Jun 2021 19:18:51 +0000 Received: by mail-wm1-f53.google.com with SMTP id g204so8614448wmf.5 for ; Fri, 11 Jun 2021 12:18:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=X/sdjJe6yt3diPx8ikiMHADQg4KUYSw7HxD+QdxVGV8=; b=FvJYEpyUnMWrzfn8DfU6I4fv0sWfo5lmCvfW6TEYWqDx6o6TAWhBI16LpMF1e1IY7u LC7towPsPZq6eivl5McRfPFNI3ddr1XMFQOSOVxzMOhOnrvaMeFz8EMVNBb4em75BahB 4Cuqcqu4LbwB0GXAqCb7Zqd/E8LzYABENp2LXXREuRjyOJuXfCmSQUt4S3wv6gmNzZ8e w9vVzlw0mgfu+ePaLyvBcEP0ZH/9nhPzlbdbGErncyrlzGZ3K+PbvRS3DQzFpm6Fd3Bm aA9HDk8VeSOGy5FREA75+WHw50x1T2gh12IvOA94h3cjvkRLr4PsWuYnEP0Vzp+XdE65 LJBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=X/sdjJe6yt3diPx8ikiMHADQg4KUYSw7HxD+QdxVGV8=; b=Zvudmu6riRSip9f88A+d6Sdp7jo41PcTb0niUoTXXZlAIGdcyWS+RkjsBxTU4/w8Qs uRzDPeOjzG5Kg6NjmwkNBqCmxWggRylndDt//UVkasdorugzD9bQ9LaV/XG0WP/waxLM vzYi8ZXUZod4t9Ha2NnoNTQGO2Nb1xTSX8eS8Qzr6TQ+3NAcagJCHLC2mAIVb2a8JGqL gMCXdIdawWYEGpgLjqVCi4DuDTgUK68LNm3cITbzQyx+3lo+Usu9A+RcLE5R9+o1wgCo FslLBmsMDj1YZsTkk+DQ+hNUVtRRTNLr8ehGmJwwyyofSuKiv3kxsEzmg4IC9XXSU2lZ OXHg== X-Gm-Message-State: AOAM532SXVJk8BxCSbzqGf8PW0HdT2N9eLhqD+X0lInL0Q9d+T/8OTdx eybeHGxAdyYMR0J+jtMQIg6l/MlPYwDi7HuI0CWALzNkfMn5Qw== X-Google-Smtp-Source: ABdhPJwylacIUH+3pZ3o5DOLDWu/LDEg2L+ZXwjlTZXqK9f54lFOjFMgl1Lu3zj2gJ/dzCcW0dgpxQmS4lMNA0eX830= X-Received: by 2002:a1c:2015:: with SMTP id g21mr21848713wmg.87.1623439130859; Fri, 11 Jun 2021 12:18:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Zach Riggle Date: Fri, 11 Jun 2021 14:18:40 -0500 Message-ID: Subject: Re: Where is this =(:) construct documented? To: zsh-workers@zsh.org Content-Type: text/plain; charset="UTF-8" X-Seq: 49058 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: Formatting fix, I accidentally a newline. # wat.zsh #### wat() { >&2 echo IN WAT >&2 ls -la "$1" echo "$1" } ls -la $(wat =(:)) ############# Zach Riggle On Fri, Jun 11, 2021 at 2:17 PM Zach Riggle wrote: > > 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. > > ( ... ) creates a subshell (terminology?) > ( : ) creates a subshell that does nothing > =bash evaluates to the path to bash, e.g. /usr/bin/bash > $(...) captures the output of a subshell, e.g. x=$(echo foo) > > If follows, then, that =(:) shows the path to... what? Apparently, a > scope-tracked, auto-deleting temporary file. *Where is this > documented?* > > # wat.zsh #### > wat() { > >&2 echo IN WAT > >&2 ls -la "$1" > echo "$1" > }ls -la $(wat =(:)) > ############# > > # example ##### > $ zsh wat.sh > IN WAT > -rw------- 1 zachriggle wheel 0 Jun 11 14:13 /tmp/zshfMERth > ls: /tmp/zshfMERth: No such file or directory > ############# > > What's more insane is that the temporary file will be auto-populated > with the output of the =() construct. Where is THAT documented? > > ############# > $ (){ echo $1; cat $1 } =( echo allo ) > /tmp/zshpfFAOp > allo > ############# > > > Zach Riggle