我是 Linux 新手,复制了一个从 XML 中提取值的 bash 脚本。 我可以完美地回显计算结果,但将其分配给变量似乎不起作用。
#!/bin/bash
IFS=$'\r\n' result=(`curl -s "http://xxx.xxx.xxx.xxx/smartmeter/modules" | \
xmlstarlet sel -I -t -m "/modules/module" \
-v "cumulative_logs/cumulative_log/period/measurement" -n \
-v "point_logs/point_log/period/measurement" -n | \
sed '/^$/d' `)
# uncomment for debug
echo "${result[0]}"*1000 |bc
gas=$(echo"${result[0]}"*1000 |bc)
echo "${result[0]}"*1000 |bc
给我所需的结果,但我不知道如何将其分配给变量。
我试过刻度线:
gas=\`echo"${result[0]}"*1000 |bc\`
还有 $(
有人能指出我正确的方向吗?
最佳答案
如果你想使用 bc
那么
您可以只使用反引号,为什么要使用反斜杠?这段代码有效,我刚刚测试过。
gas=`echo ${result[0]}*1000 | bc`
在 echo
之后使用一个空格并且 * 运算符周围没有空格
关于linux - 如何将 echo 的结果分配给 bash 脚本中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34532677/