2016-03-07 59 views
4

大師的函數內的數組值。我正在開發一個bash腳本並學習bash中的數組。我讀了幾條關於這個的文章,但是我的頭炸了起來。我曾經在PHP和bash中編程對我來說是新的和「基本的」。Bash。返回基於參數

我打算將multilang支持加入到我的腳本中,並且我需要在不同的數組中定義所有可見的短語,讓他們用參數調用一個函數。很難解釋我會把我想要在PHP中做什麼什麼是我的「舒適」的語言,然後我在bash腳本中不工作aproximation。

Php: 
function english($index) { 
    $strings=array(
       "phrase1", 
       "phrase2" 
       ); 
    return $strings[$index]; 
} 
echo english(1); //It produces (zero based) "phrase2" 

好了,現在我可憐的bash腳本試圖做同樣的:

Bash: 
function english() { 
    strings=("phrase1" "phrase2") 
    return ${strings[$1]} 
} 
echo english 2 

我怎樣才能返回數組調用包含基於函數的參數數組和函數的期望值?

任何人都有一個很好的bash手冊來做一些這方面的實踐?謝謝。

+0

Bash函數返回int作爲狀態值,而不是字符串。 – karakfa

回答

2

shell中的返回值用於退出代碼,而不是數據。相反,將值寫入標準輸出(如果需要,可以使用命令替換捕獲它)。

english() { 
    strings=("phrase1" "phrase2") 
    echo "${strings[$1]}" 
} 

english 1   # Arrays are indexed from 0 
word=$(english 0) # word=phrase1 
1

嘗試:

function english { 
    strings=("phrase1" "phrase2") 
    echo ${strings[$1]} 
} 
#Arrays are zero-based 
english 1; 

Bash Guide for Beginners