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

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
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}}^' $*}'}
}

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.