mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-07 23:51:14 +02:00
30740: add example of process substitution using anonymous function
This commit is contained in:
parent
a02f3b6910
commit
02225925ef
2 changed files with 22 additions and 1 deletions
|
@ -1,5 +1,8 @@
|
|||
2012-10-18 Peter Stephenson <pws@csr.com>
|
||||
|
||||
* 30740: Doc/Zsh/expn.yo: add example of process substitution
|
||||
with anonymous function.
|
||||
|
||||
* c.f. users/17330: Doc/Zsh/expn.yo: fix reference to splitting
|
||||
rule in parameter expansion rules.
|
||||
|
||||
|
@ -274,5 +277,5 @@
|
|||
|
||||
*****************************************************
|
||||
* This is used by the shell to define $ZSH_PATCHLEVEL
|
||||
* $Revision: 1.5746 $
|
||||
* $Revision: 1.5747 $
|
||||
*****************************************************
|
||||
|
|
|
@ -483,6 +483,24 @@ example(LPAR()mycmd =(myoutput)RPAR() &!)
|
|||
as the forked subshell will wait for the command to finish then remove
|
||||
the temporary file.
|
||||
|
||||
A general workaround to ensure a process substitution endures for
|
||||
an appropriate length of time is to pass it as a parameter to
|
||||
an anonymous shell function (a piece of shell code that is run
|
||||
immediately with function scope). For example, this code:
|
||||
|
||||
example(LPAR()RPAR() {
|
||||
print File $1:
|
||||
cat $1
|
||||
} =+LPAR()print This be the verse+RPAR())
|
||||
|
||||
outputs something resembling the following
|
||||
|
||||
example(File /tmp/zsh6nU0kS:
|
||||
This be the verse)
|
||||
|
||||
The temporary file created by the process substitution will be deleted
|
||||
when the function exits.
|
||||
|
||||
texinode(Parameter Expansion)(Command Substitution)(Process Substitution)(Expansion)
|
||||
sect(Parameter Expansion)
|
||||
cindex(parameter expansion)
|
||||
|
|
Loading…
Reference in a new issue