使用变量在sh中进行睡眠命令

KG2*_*005 3 unix shell sleep

我想知道如何让我的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)

she*_*ter 6

正如其他人所指出的那样,现代(*)方法是使用#!/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