2016-07-28 23 views
0

我正在学习bash shell。 我发现了一个命令,“读”,它可以以不同的变量提供多个值,像可以在bash中输出多个值,如:读取A B C <<<“1 2 3”?

read A B C ... <<< "1 2 3 ..." 

现在我做一个函数

function echo_multiple_values() { 
    echo "1 2 3 ..." 
} 

我是否有一个聪明的方式来输出多个值从一个函数,就像

A B C ...=$(echo_multiple_values) 

非常感谢。

+2

你可以用” t做ABC ... = $(echo_multiple_values)'imho。 – sjsam

+0

谢谢sjsam。感谢你的指示,我可以停止搜索不存在的方式。也许另一种方式是读取A B C ... <<< $(echo_multiple_values)。再次感谢你。 – mora

+1

'set - 1“2 3”4; echo“$ {#@} - > $ {@}”;返回'3-> 1 2 3 4'。所以''2 3“'(但没有dbl-quotes)将在'$ 2'中。祝你好运。 – shellter

回答

3

你不能这样做

A B C ...=$(echo_multiple_values) 

,但你可能希望做类似如下:

myfun(){ 
arr=({1..3}) #{a..b} is a bash range 
echo "${arr[@]}" 
} 

read a b c <<<"$(myfun)" 

此外,你可以不喜欢下面

$alphabets=({a..z}) 
$ nums=({1..26}) 
$ read "${alphabets[@]}" <<<"${nums[@]}" 
$ echo $a 
1 
$ echo $c 
3 
$ echo $z 
26 
相关问题