From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2834 invoked by alias); 20 Apr 2016 01:37:58 -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: 21456 Received: (qmail 1616 invoked from network); 20 Apr 2016 01:37:57 -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=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, LOTS_OF_MONEY,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1461115632; bh=pVgbnmaYZNc2JDWEiL91E8GxVgi1fHv3LxcCOsCVs28=; h=From:To:In-Reply-To:References:Subject:Date; b=qdHXJkf1Z5/MAokly0OivhPxKnfw/PoSy9gvfRyqOP+ZfoTXNpPDP9irQ3rsNEv0x 6csbwpMuK/521iLGg3NKMjfjz96BxAQ3gU7NYXo4JBgV01buUIiOsz1wvqmMiHnsjq oqneylWviasoqiLc6O0NF/I96vP+O5NbfT/yjJ5Y= From: "Nikolay Aleksandrovich Pavlov (ZyX)" To: Emanuel Berg , "zsh-users@zsh.org" In-Reply-To: <8760vdrt5y.fsf@student.uu.se> References: <8760vdrt5y.fsf@student.uu.se> Subject: Re: virtual files? MIME-Version: 1.0 Message-Id: <1302351461115632@web4o.yandex.ru> X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Wed, 20 Apr 2016 04:27:12 +0300 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=utf-8 20.04.2016, 04:19, "Emanuel Berg" : > Here is a program I just wrote. > > Feel free to comment on any part. > > However my specific question is, instead of using the > "result_file" stuff, is there support for > I suppose "virtual files" or basically a data structure > that can be used transparently as a file, or with but > small adjustments? > > TIA. > > #! /bin/zsh > > # This file: http://user.it.uu.se/~embe8573/conf/.zsh/money > > # zsh CLI to Internet inflation calculator. > # > # Try, for example, three K2 expeditions: > # > # $ inflation 9000 1938; inflation 30958.33 1953; inflation 108000 1954 > # > # which yields: > # > # $151,999.15 > # $276,111.20 > # $956,069.00 > > inflation () { >     local usd=${1:-10} > >     # year >     local then=${2:-1950} >     local now=`date +"%Y"` > >     local result_file=result > >     local link="http://data.bls.gov/cgi-bin/cpicalc.pl?cost1=$usd&year1=$then&year2=$now" >     wget -q $link -O $result_file > >     echo -n \$ >     grep \"answer\" $result_file | cut -d \$ -f 2 | cut -d \< -f 1 > >     rm $result_file > } In some cases you may use `>(process)` to create file descriptor that will be used like a named pipe and may replace real files in some cases (it does not support seek(), also some processes have a habit of closing all file descriptors except stdin/stdout/stderr). But it is launched in subshell which limits the usefullness further (i.e. you cannot directly save result in a variable). Specifically this function does not need >() or any file at all: … echo -n \$ wget -q $link -O- | grep answer | cut -d \$ -f2 | cut -d \< -f1 … > > -- > underground experts united .... http://user.it.uu.se/~embe8573 > Emacs Gnus Blogomatic ......... http://user.it.uu.se/~embe8573/blogomatic >                    - so far: 25 Blogomatic articles -