arrays – 根据参数从函数内的数组返回值

大师.我正在开发一个bash脚本并在bash中学习数组.我读了几个关于那个的但是我的脑袋爆炸了.我曾经在php中编程,而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手册来做一些这方面的做法?谢谢.

最佳答案 shell中的返回值用于退出代码,而不是数据.而是将值写入标准输出(并在必要时使用命令替换捕获它).

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

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