相关疑难解决方法(0)

Linux bash:多变量赋值

在linux中存在类似于PHP中的以下代码:

list($var1, $var2, $var3) = function_that_returns_a_three_element_array() ;
Run Code Online (Sandbox Code Playgroud)

即,您在一个句子中为3个不同的变量分配相应的值.

假设我有bash函数myBashFuntion写入stdout字符串"qwert asdfg zxcvb".有可能做这样的事情:

(var1 var2 var3) = ( `myBashFuntion param1 param2` )
Run Code Online (Sandbox Code Playgroud)

等号左边的部分当然不是有效的语法.我只是想解释一下我的要求.

但是,工作原理如下:

array = ( `myBashFuntion param1 param2` )
echo ${array[0]} ${array[1]} ${array[2]}
Run Code Online (Sandbox Code Playgroud)

但索引数组不像普通变量名那样具有描述性.
但是,我可以这样做:

var1 = ${array[0]} ; var2 = ${array[1]} ; var3 = ${array[2]}
Run Code Online (Sandbox Code Playgroud)

但这些是我更愿意避免的3个陈述.

我只是在寻找一种快捷语法.可能吗?

linux bash shell variable-assignment multiple-variable-return

106
推荐指数
4
解决办法
11万
查看次数