2016-07-28 56 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 
相關問題