From: "Nikolay Aleksandrovich Pavlov (ZyX)" <kp-pav@yandex.ru>
To: Emanuel Berg <embe8573@student.uu.se>,
"zsh-users@zsh.org" <zsh-users@zsh.org>
Subject: Re: virtual files?
Date: Wed, 20 Apr 2016 04:27:12 +0300 [thread overview]
Message-ID: <1302351461115632@web4o.yandex.ru> (raw)
In-Reply-To: <8760vdrt5y.fsf@student.uu.se>
20.04.2016, 04:19, "Emanuel Berg" <embe8573@student.uu.se>:
> 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 -
next prev parent reply other threads:[~2016-04-20 1:37 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-20 1:00 Emanuel Berg
2016-04-20 1:27 ` Nikolay Aleksandrovich Pavlov (ZyX) [this message]
2016-04-20 2:12 ` Emanuel Berg
2016-04-20 2:31 ` Nikolay Aleksandrovich Pavlov (ZyX)
2016-04-20 4:03 ` Bart Schaefer
2016-04-20 6:06 ` Emanuel Berg
2016-04-21 22:14 ` Emanuel Berg
2016-04-22 1:08 ` Bart Schaefer
2016-04-20 3:32 ` Benjamin R. Haskell
2016-04-20 20:34 ` Bart Schaefer
2016-04-22 5:26 ` Benjamin R. Haskell
2016-04-21 4:12 ` Emanuel Berg
2016-04-21 6:58 ` Bart Schaefer
2016-04-21 8:05 ` Emanuel Berg
2016-04-22 5:55 ` Benjamin R. Haskell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1302351461115632@web4o.yandex.ru \
--to=kp-pav@yandex.ru \
--cc=embe8573@student.uu.se \
--cc=zsh-users@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).