bash:'错误:价值对于基数来说太大了(错误令牌是'' 2M'')'

时间:2017-11-09 21:35:39

标签: arrays bash

我正在尝试打印一个包含字符串elelmnts的数组。有些是单词,有些是数字,有些是两者。我在标题中得到错误。我知道这个错误通常与shell有关,我认为我使用的是十进制以外的基数。这次问题令牌是字母和数字的组合(2M)

arrcourse=[$[`cat tmp2`]]
    size=${#arrcourse[@]}
    for(( j=1; j<$size; j++ )); do
        echo ${arrcourse[$j]}
    done

tmp2是包含我最终想要打印的行的文件(我使用和数组丢失空格,然后选择要打印的元素)。 tnx提前。

2 个答案:

答案 0 :(得分:0)

第一行看起来很可疑。使用括号()创建数组,而不是括号[]。您想要编写以下命令之一吗?

arrcourse=(`cat tmp2`)
arrcourse=( $(cat tmp2) )

命令是等效的。 <{1}}比反引号更受欢迎,因为它可以嵌套。

提示: Bash还有一个读取数组的命令。

$()

答案 1 :(得分:0)

为什么不这样做?

printf '%s\n' "${my_array[@]}"

来源:bash print array elements on separate lines