linux下用shell循环将日期累加

例如:
#/bin/bash
a=10
for((i=0;i<10;i++))
do
date -d'+$a second'
b=$(( (RANDOM % 10) +10 ))
a=$((a+b))
echo $a
done
在以上程序中,我想将日期循环打印10次,每次比上次多10-20秒,但是date -d'+$a second'这个用法不对,-d后面必须是数字才有效(例如date -d'+14 second'),不能是变量,怎么办?

第1个回答  2019-09-19
单引号换成双引号,基础问题,改成 date -d"+$a second" 就行了
单引号是原样输出,双引号会解析里面的变量,另外变量最好用{}括起来
第2个回答  2019-09-18
因为使用管道后,生成了一个子shell,子shell里面的变量和外面的变量不是同一个变量,虽然变量名称是一样的。所以循环结束后,父shell的变量仍然没有变动。本回答被网友采纳
第3个回答  2019-09-19
推荐本书《linux就该这么学》里面详细讲到shell

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网