Bash:读入多个局部范围变量

Bash:读入多个局部范围变量,bash,Bash,根据这一回答: 我可以读入,因此可以分配多个变量 但是,我希望这些变量是bash函数的局部变量,这样它就不会污染全局范围 有没有一种方法可以做到: func () { local read a b <<< $(echo 123 435) echo $a } func echo $a func(){ local read a b您几乎做到了:您只需将变量定义为local,但必须事先,而不是在read声明中: func () { local a b

根据这一回答:

我可以读入,因此可以分配多个变量

但是,我希望这些变量是bash函数的局部变量,这样它就不会污染全局范围

有没有一种方法可以做到:

func () {
    local read a b <<< $(echo 123 435)
    echo $a
}
func
echo $a
func(){

local read a b您几乎做到了:您只需将变量定义为
local
,但必须事先,而不是在
read
声明中:

func () {
     local a b
     read a b <<< $(echo 123 435)
     echo $a
}

只需在一行上将变量声明为局部变量,并在另一行中使用它们:

$ a=5
$ func() {
    local a b
    read a b <<< "foo bar"
    echo $a
}
$ func
foo
$ echo $a
5
$a=5
$func(){
本地甲乙
读a b
$ a=5
$ func() {
    local a b
    read a b <<< "foo bar"
    echo $a
}
$ func
foo
$ echo $a
5