Arrays 从字符串数组中添加两个数字的正确bash语法是什么?

Arrays 从字符串数组中添加两个数字的正确bash语法是什么?,arrays,bash,syntax,Arrays,Bash,Syntax,我必须从管道中读取字符串,我正在使用 read -a line 为此 然后我需要从字符串中计算出两个数字(字符串中的数字正好位于我需要的位置) 然后我试着写下: number= 10*${line[4]} + ${line[5]} 从bash中获取以下错误: local: `10*1': not a valid identifier local: `+': not a valid identifier 如何正确编写这些字符串字段将转换为数字(“50”到50等)并参与表达式?让我们看一个示

我必须从管道中读取字符串,我正在使用

read -a line 
为此

然后我需要从字符串中计算出两个数字(字符串中的数字正好位于我需要的位置)

然后我试着写下:

number= 10*${line[4]} + ${line[5]}
从bash中获取以下错误:

local: `10*1': not a valid identifier
local: `+': not a valid identifier
如何正确编写这些字符串字段将转换为数字(“50”到50等)并参与表达式?

让我们看一个示例:

$ a[0]=12
$ a[1]=23
$ res=$(( ${a[0]} + ${a[1]}))
$ echo $res
35
所以在你的情况下,你需要这样做

num=$(( 10*${line[4]} + ${line[5]}))
让我们看一个例子:

$ a[0]=12
$ a[1]=23
$ res=$(( ${a[0]} + ${a[1]}))
$ echo $res
35
所以在你的情况下,你需要这样做

num=$(( 10*${line[4]} + ${line[5]}))

计算表达式的另一种方法:

result=$(expr "1" + "2")
echo $result #=> 3
请参阅expr手册页:

man expr

计算表达式的另一种方法:

result=$(expr "1" + "2")
echo $result #=> 3
请参阅expr手册页:

man expr

bash-hack-to-get-number是smth-like$((var+0))bash-hack-to-get-number是smth-like$((var+0))在此上下文中,您必须小心转义乘法,以便
*
不会扩展到文件名在此上下文中,您必须小心转义乘法,以便
*
不会扩展到文件名