如何正确在Linux Shell脚本中定义一个时间变量?
我有一个Shell脚本,从开始执行到结束是需要花费一定的时间的。我现在想记录这个具体的时间段。如下脚本:#!/bin/bashLOG_TIME=`date+%H:%M:%...
我有一个Shell脚本,从开始执行到结束是需要花费一定的时间的。我现在想记录这个具体的时间段。如下脚本:
#!/bin/bash
LOG_TIME=`date +%H:%M:%S`
echo "脚本开始时间:"$LOG_TIME
/bin/sleep 10
echo "脚本结束时间:"$LOG_TIME
exit 1
我设置中间停顿了10秒钟。
问:执行该脚本时输出到控制台的脚本开始时间和结束时间为什么是一样的? 展开
#!/bin/bash
LOG_TIME=`date +%H:%M:%S`
echo "脚本开始时间:"$LOG_TIME
/bin/sleep 10
echo "脚本结束时间:"$LOG_TIME
exit 1
我设置中间停顿了10秒钟。
问:执行该脚本时输出到控制台的脚本开始时间和结束时间为什么是一样的? 展开
2个回答
展开全部
后面echo之前把下面这行再执行一遍不就行了:
LOG_TIME=`date +%H:%M:%S`
这只是一个变量而已,你不给他赋值他怎么会自己变化呢?
LOG_TIME=`date +%H:%M:%S`
这只是一个变量而已,你不给他赋值他怎么会自己变化呢?
更多追问追答
追问
定义一个变量,当然就是为了方便一处定义下面多处调用啊,如果下面再执行一遍那么定义这个变量就似乎没有意义了。
难道LOG_TIME第一次执行之后就变成了一个常量,而下面调用的时候就只获取这个常量,而不是获取当前的`date +%H:%M:%S`?
追答
大哥,你连变量和常量的区别都没有搞清楚。。
看一下你这个脚本的逻辑:
#!/bin/bash
LOG_TIME=`date +%H:%M:%S` # 取出当前的时间值,赋值给变量LOG_TIME
echo "脚本开始时间:"$LOG_TIME # 打印一下该变量的值
/bin/sleep 10 # 暂停10秒
echo "脚本结束时间:"$LOG_TIME # 再打印一下该变量的值
exit 1
你只是将一个变量的值打印了两遍,中间又没有修改变量的值,两次打印的结果为什么要不一样呢?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询