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))在此上下文中,您必须小心转义乘法,以便
*
不会扩展到文件名在此上下文中,您必须小心转义乘法,以便*
不会扩展到文件名