mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-25 08:36:35 +08:00
cfc06203e7
--inherit-variable takes a variable name and snapshots its current value. When the function is executed, it will have a local variable with this value already defined. Printing the function source will include synthesized `set -l` lines for the values. This is primarily useful for functions that are created on the fly, such as in `psub`.
33 lines
623 B
Fish
33 lines
623 B
Fish
# vim: set filetype=fish:
|
|
#
|
|
# Test the `function` builtin
|
|
|
|
# utility function
|
|
function show_ary -a name --no-scope-shadowing
|
|
set -l count (count $$name)
|
|
echo "\$$name: ($count)"
|
|
if test $count -gt 0
|
|
for i in (seq $count)
|
|
echo "$i: '$$name[1][$i]'"
|
|
end
|
|
end
|
|
end
|
|
|
|
# Test the -V flag
|
|
set -g foo 'global foo'
|
|
set -l foo 'local foo'
|
|
set bar one 'two 2' \t '' 3
|
|
set baz
|
|
function frob -V foo -V bar -V baz
|
|
show_ary foo
|
|
show_ary bar
|
|
show_ary baz
|
|
end
|
|
echo "Testing -V"
|
|
frob
|
|
echo "Testing -V with changed variables"
|
|
set foo 'bad foo'
|
|
set bar 'bad bar'
|
|
set baz 'bad baz'
|
|
frob
|