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'),不能是变量,怎么办?
展开
 我来答
Dota_DaLaJi
2019-09-19 · 超过27用户采纳过TA的回答
知道答主
回答量:79
采纳率:100%
帮助的人:26万
展开全部
单引号换成双引号,基础问题,改成 date -d"+$a second" 就行了
单引号是原样输出,双引号会解析里面的变量,另外变量最好用{}括起来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花艳花自娱951
2019-09-18 · TA获得超过1877个赞
知道大有可为答主
回答量:3168
采纳率:0%
帮助的人:390万
展开全部
因为使用管道后,生成了一个子shell,子shell里面的变量和外面的变量不是同一个变量,虽然变量名称是一样的。所以循环结束后,父shell的变量仍然没有变动。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linuxprobe001
科技发烧友

2019-09-19 · 智能家居/数码/手机/智能家电产品都懂点
知道小有建树答主
回答量:855
采纳率:80%
帮助的人:51.1万
展开全部
推荐本书《linux就该这么学》里面详细讲到shell
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式