Вы также можете сделать это по-другому.
_foo ()
{
local _retval
declare -n output="$1" # $output is local (by default with declare in a func.)
## and points to $1
output="baz" && false
_retval=$?
echo ${_retval} # change echo to exit
}
Теперь вызовите _foo
следующим образом:
$ _foo bar
1
$ echo "$bar"
baz
Когда вы измените echo
на exit
в определении функции, exit
будет выйти из скрипта.