shell脚本怎么获取唯一流水号

shell脚本怎么获取唯一流水号,第1张

您好,要获取唯一流水号,可以使用shell脚本来实现。首先,您可以使用date命令来获取当前时间,然后使用awk命令来提取其中的年月日,再使用rand命令来生成随机数,最后将年月日和随机数拼接起来,就可以获得一个唯一的流水号了。此外,您还可以使用UUID来生成唯一的流水号,UUID是一种128位的全局唯一标识符,可以保证每个标识符的唯一性。使用UUID来生成唯一的流水号只需要在shell脚本中调用uuidgen命令即可。

if "%date:~5,1%"=="0" (set /a "m=%date:~6,1%") else (set /a "m=%date:~5,2%") >>logtxt

你自己判断的,如果第五位是0就输入第六位

201402就被你变成2了

直接set /a "m=%date:~5,2%" 就是两位了

#判断当前的年份是否为闰年

sleapyear()

{

r4=`expr $1 % 4`

r100=`expr $1 % 100`

r400=`expr $1 % 400`

if [ r4 -eq 0 and r100 -ne 0 ]; then

return 1

elif [ r400 -eq 0 ]

then

return 1

else

return 0

fi

}

#获取前一天的日期,在此函数中会调用判断闰年的函数

yesterday()

{

day=`echo "$3 - 1"|bc`

month=$2

year=$1

if [ $day -eq 0 ]; then

month=`echo "$2 - 1"|bc`

isleapyear $1

leap=$

case $month in

0|1|3|5|7|8|10|12 )

day=31;;

4|6|9|11 )

day=30;;

2 )

if [ $leap -eq 1 ]; then

day=29

else

day=28

fi;

esac

if [ $month -eq 0 ]; then

month=12

year=`echo "$1 - 1"|bc`

fi

fi

date=`printf "%s%02s%02s" $year $month $day`

}

#设置传入yesterday函数的参数

set `date +%C%y\ %m\ %d`; YEAR=$1; MONTH=$2; DAY=$3

#调用yesterday,传入三个参数,分别为当前年,当前月,当前日

yesterday $YEAR $MONTH $DAY

echo $date

[seesea@CU ~]$ date +%Y%m

201307

[seesea@CU ~]$ date -d"next month" +%Y%m

201308

[seesea@CU ~]$ date -d"next month" +%Y%m01

20130801

lz 试试楼下的代码在 12 月份的情况就知道谁的对谁的错了。看来正确的答案只有管理员才有眼光选上啊。

1,$HOME/getdatesh,内容如下:

#!/bin/bash

DATE=/bin/date

$DATE +"%F %T" >>$HOME/date_loglog

2 $HOME/call_gdsh,内容如下

#!/bin/bash

SH=/bin/sh

${SH} $HOME/getdatesh

以上就是关于shell脚本怎么获取唯一流水号全部的内容,包括:shell脚本怎么获取唯一流水号、shell标本,获取上个月的月份(YYYY-MM,月份必须为两位数)、shell 中如何获取前一天的日期字符串等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9437504.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存