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

时间:2016-05-07 14:27:36

标签: shell unix sleep

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

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

5 个答案:

答案 0 :(得分:5)

正如其他人所指出的那样,现代(*)方法是使用#!/bin/bash甚至#!/bin/ksh来使用{{1}内置的算术运算支持}。

正如您明确提到的n=$(($a+$b+$c),这是一个适合您的解决方案。

#!/bin/sh

关键部分是使用反引号进行命令替换,并使用shell管道(#!/bin/sh echo hello1 a=6 b=2 c=3 d=`echo "$a+$b+$c" | bc` sleep $d echo hello2 )函数发送要由bc命令评估的数学参数:ie < / p>

|

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

IHTH

答案 1 :(得分:1)

您可以使用$((...))进行算术运算:

d=$(($a + $b + $c))

答案 2 :(得分:1)

试试这个脚本:

Toolbar

答案 3 :(得分:0)

您可以使用

    a=6
    b=2
    c=3
    ((d=a+b+c))

答案 4 :(得分:0)

为了使可变时间从几秒到几小时不等,一种方法是使用for循环。这样,整个时间应该经过三个for循环,每个循环分别消耗秒,分钟和小时。以下是bash代码:

echo -n "enter seconds:"
read sec
echo -n "enter minutes:"
read min
echo -n "enter hour:"
read hour
for ((i=0; i<$sec;i++))
  do
     sleep 1
  done
for ((i=0;i<$min;i++))
  do
     sleep 1m
  done
for ((i=0;i<$hour;i++))
  do
    sleep 1h
  done

“秒”,“分钟”和“小时”是整个时间的变量。