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

list($var1, $var2, $var3) = function_that_returns_a_three_element_array() ;

i、 e.你在一句话中给三个不同的变量分配一个对应的值.

假设我有一个bash函数myBashFuntion,它向stdout写入字符串"qwert asdfg zxcvb".

(var1 var2 var3) = ( `myBashFuntion param1 param2` )

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

不过,有效的方法是:

array = ( `myBashFuntion param1 param2` )
echo ${array[0]} ${array[1]} ${array[2]}

但索引数组并不像普通变量名那样具有描述性

var1 = ${array[0]} ; var2 = ${array[1]} ; var3 = ${array[2]}

但这是我更愿意避免的另外三种说法.

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

推荐答案

我想到的第一件事是:

read -r a b c <<<$(echo 1 2 3) ; echo "$a|$b|$c"

不出所料,输出正在增长

1|2|3

Linux相关问答推荐

将UTC字符串日期时间转换为毫秒UTC时间戳

如果在两种模式之间找到文本,则使用sed删除它们之间的所有行

JSON 转义 CURL/JQ 输出

Linux 中大型 TSV 的条件编辑

Linux BlueZ 5.65 hcitool 结合服务 UUID 和制造数据广告

Linux 如何使用 PCID 的值?

根据其他列的值创建一个新列

如何在ubuntu中通过.sh文件启动多个服务

在 Linux 中 Select 多个同名的可执行文件

如何/在哪里可以找到要修复的 Linux 内核错误?

ld-linux.so.2 和 linux-gate.so.1 是什么?

如何使用 AWK 合并两个文件?

Linux AMD64 中如何使用 fs/gs 寄存器?

我可以告诉 Linux 不要换出特定进程的内存吗?

Windows 开发环境值得付出代价吗?

如何从 Linux 终端找到特定文件?

Docker:您是否try 连接到没有 TLS 的启用 TLS 的守护进程?

构建窗口管理器

linux脚本杀死java进程

Linux 上 POSIX AIO 和 libaio 的区别?