添加命令输出的 bash shell 脚本

添加命令输出的 bash shell 脚本

假设我有一个名为的命令foo,它在调用时会在屏幕上打印一个数字:

$ foo
3

假设我还有另一个命令,bar它在调用时会在屏幕上打印另一个数字:

$ bar
5

我想编写一个 shell 脚本,将foo和的输出算术相加bar(3+5=8)。我该怎么做?(命令的输出事先是不知道的。它们只是上次运行时碰巧是 3 和 5。它们可能是其他值。)

答案1

使用 bashlet来评估算术表达式。

#!/bin/bash
a=`echo 3`
b=`echo 5`

let c=$a+$b
echo $c

echo只需用您的程序调用替代这些调用即可。

答案2

另一种方法let是使用双括号语法:

(( c = $(foo) + $(bar) ))

或者

echo $(( $(foo) + $(bar) ))

或者使用变量,可以省略等号右侧的美元符号:

(( c += $(foo) + num ))

(这也说明了增量分配)

如果您使用非整数,则可以使用bc

echo "$(foo) + $(bar)" | bc

或者

c=$(echo "$(foo) + $(bar)" | bc)

使用双括号的一个优点是可以在操作数和运算符周围放置空格,以使内容更具可读性:

(( c = ( a + b ) * ( i - j ) ))

答案3

重击:

bc < <({ foo ; echo + ; bar ; } | tr '\n' ' ' ; echo)

如果输出仅为整数:

$(( $(foo) + $(bar) ))

相关内容