我想知道如何让我的shell脚本睡觉我的变量总和,谢谢!
#!/bin/sh
echo hello1
a=6
b=2
c=3
d = $a+$b+$c
sleep $d
echo hello2
Run Code Online (Sandbox Code Playgroud)
正如其他人所指出的那样,现代(*)方法是使用#!/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
Run Code Online (Sandbox Code Playgroud)
关键部分是使用反引号进行命令替换,并bc使用shell的pipe(|)函数发送要由命令评估的数学参数:ie
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
Run Code Online (Sandbox Code Playgroud)
(*)现代贝壳意味着1986年及以后;-)
IHTH