根据这个答案:https://stackoverflow.com/a/1952480/582917
我可以读入并因此分配多个变量。
但是我希望这些变量是bash函数的本地变量,因此它不会污染全局范围。
有没有办法做类似的事情:
func () {
local read a b <<< $(echo 123 435)
echo $a
}
func
echo $a
以上不起作用。阅读局部变量的好方法是什么?
答案 0 :(得分:11)
你几乎就在那里:你只需要将变量定义为local
,但事先将其定义为read
声明:
func () {
local a b
read a b <<< $(echo 123 435)
echo $a
}
$ func
123
$ echo $a
$
答案 1 :(得分:4)
只需将变量声明为一行上的本地变量,并在单独的行中使用它们:
$ a=5
$ func() {
local a b
read a b <<< "foo bar"
echo $a
}
$ func
foo
$ echo $a
5