首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将echo的结果赋值给bash脚本中的变量

如何将echo的结果赋值给bash脚本中的变量
EN

Stack Overflow用户
提问于 2015-12-30 23:50:22
回答 2查看 19.8K关注 0票数 13

我是一个Linux新手,我复制了一个从XML中提取值的bash脚本。我可以完美地回显计算结果,但将其赋值给变量似乎行不通。

代码语言:javascript
复制
#!/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

为我提供了所需的结果,但我不知道如何将其赋给变量。

我试着用刻度标记:

代码语言:javascript
复制
gas=\`echo"${result[0]}"*1000 |bc\`

并使用$(

谁能给我指个方向?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-31 00:16:01

如果你无论如何都想使用bc,那么你可以使用反勾号,为什么你要使用反斜杠呢?这段代码可以工作,我刚刚测试过。

代码语言:javascript
复制
  gas=`echo ${result[0]}*1000 | bc`

echo后使用一个空格,在*运算符周围不使用空格

票数 15
EN

Stack Overflow用户

发布于 2015-12-30 23:59:31

不需要使用bcecho。只需使用arithmetic expansion $(( expression ))即可执行此类操作:

代码语言:javascript
复制
gas=$(( ${result[0]} * 1000))

这允许算术表达式的求值和结果的替换。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34532677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档