Plan 9 from Bell Labs’s /n/sources/contrib/rog/sh-examples/vbind.sh

Copyright © 2009 Alcatel-Lucent.
Distributed under the Lucent Public License version 1.02.
Download the Plan 9 distribution.


# lexically bind environment variables to a block.
# create a new function _name_ with each argument _var_
# bound to its current value.

fn vbindfn {
	_args:=$*
	and {~ $#_args 0 1} {echo 'usage: vbindfn name block [var ...]' >[1=2]; raise usage}
	_let := ''
	for _ in ${tl ${tl $_args}} {
		echo doing $_
		_let=$_let^${quote $_}^':='^${quote $$_}^';'
	}
	fn ${hd $_args} ${parse '{'^$_let^${hd ${tl $_args}}^' $*}'}
}

(This is a user-contributed directory and
should not be interpreted as statement by Alcatel-Lucent.)

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2009 Alcatel-Lucent. All Rights Reserved.
Comments to webmaster@plan9.bell-labs.com.