shell – 带变量的sh命令

我想知道如何让我的shell脚本睡觉我的变量总和,谢谢!

#!/bin/sh
echo hello1
a=6
b=2
c=3
d = $a+$b+$c
sleep $d
echo hello2
最佳答案
正如其他人所指出的那样,现代(*)方法是使用#!/ bin / bash甚至是#!/ bin / ksh,内置支持算术运算,使用n = $(($a $b $c) .

正如您已明确提到#!/ bin / sh,这是一个适合您的解决方案.

#!/bin/sh
echo hello1
a=6
b=2
c=3
d=`echo "$a+$b+$c" | bc`
sleep $d
echo hello2

关键部分是使用反引号进行命令替换,并使用shell的管道(|)功能发送要由bc命令评估的数学参数:即

d=`echo "$a+$b+$c" | bc`
 |  |       |      |  | -> bc is a "basic" calulator
 |  |       |      | -> pipes pass std-out from preceding cmd, to std in fo following cmd
 |  |       | -> a string to be passed to `bc` for arthimetic evaluation
 |  | -> echo writes its output to std-out 
 | -> = assigns output of cmd=substition to var $d

(*)现代贝壳意味着1986年及以后;-)

IHTH

转载注明原文:shell – 带变量的sh命令 - 代码日志