linux下用shell循环将日期累加 10
例如:#/bin/basha=10for((i=0;i<10;i++))dodate-d'+$asecond'b=$(((RANDOM%10)+10))a=$((a+b)...
例如:
#/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'),不能是变量,怎么办? 展开
#/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'),不能是变量,怎么办? 展开
3个回答
展开全部
单引号换成双引号,基础问题,改成 date -d"+$a second" 就行了
单引号是原样输出,双引号会解析里面的变量,另外变量最好用{}括起来
单引号是原样输出,双引号会解析里面的变量,另外变量最好用{}括起来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为使用管道后,生成了一个子shell,子shell里面的变量和外面的变量不是同一个变量,虽然变量名称是一样的。所以循环结束后,父shell的变量仍然没有变动。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
推荐本书《linux就该这么学》里面详细讲到shell
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |