bash中带日期的操作

bash中带日期的操作,bash,date,rhel5,Bash,Date,Rhel5,所以我需要创建一个脚本,在一个文件中写入有关电话的详细信息。该文件需要包含: -调用\u编号->以0742、0743和0744开头,其余数字随机生成(共10个) -称为_NUMBER->,以07开头,其余数字也是随机的 -开始日期->电话的开始日期,格式为yyyy mm dd hh24:mm:ss。对于所有电话,开始日期必须从同一天开始,并涵盖当天的所有时间 -结束日期->电话的结束日期,格式相同,大于开始日期,随机生成0-7200之间的额外秒数 -CALL_TYPE->如果通话持续时间为1秒,

所以我需要创建一个脚本,在一个文件中写入有关电话的详细信息。该文件需要包含: -调用\u编号->以0742、0743和0744开头,其余数字随机生成(共10个)

-称为_NUMBER->,以07开头,其余数字也是随机的

-开始日期->电话的开始日期,格式为yyyy mm dd hh24:mm:ss。对于所有电话,开始日期必须从同一天开始,并涵盖当天的所有时间

-结束日期->电话的结束日期,格式相同,大于开始日期,随机生成0-7200之间的额外秒数

-CALL_TYPE->如果通话持续时间为1秒,则返回短信;如果通话持续时间较长,则返回语音

我做了主叫号码和被叫号码,一旦你有了结束和开始日期,主叫类型就很简单了。我对开始日期和结束日期有问题

GNUBash,版本3.2.25(1)-发行版(x86_64-redhat-linux-GNU)


谢谢

这将生成一个锚定在特定日期的随机
开始日期
,然后生成一个比该日期晚0-7200秒的随机
结束日期

#!/bin/bash

# all start_date's will be on this day
start_date_anchor="2017-09-01"
# start_date in seconds since Unix epoch
start_date_zero=$(date -d "$start_date_anchor" +%s)
# random offset in seconds from midnight (note: RANDOM is a 15-bit int)
start_date_offset=$(( ((RANDOM<<15)|RANDOM) % 86400 ))
# random start_date in "YYYY-MM-DD HH:MM:SS" format
start_date=$(date -d @"$((start_date_zero + start_date_offset))" +"%F %T")

# 0-7200 seconds offset
end_date_offset=$((RANDOM % 7200))
# end_date in "YYYY-MM-DD HH:MM:SS" format
end_date=$(date -d @"$((start_date_zero + start_date_offset + end_date_offset))" +"%F %T")

echo "Start date: $start_date"
echo "End date: $end_date"
#/bin/bash
#所有的开始日期都在这一天
开始日期锚定=“2017-09-01”
#自Unix纪元起的开始日期(秒)
开始日期=$(日期-d“$开始日期\u锚定”+%s)
#从午夜开始以秒为单位的随机偏移量(注意:随机是15位整数)

开始日期偏移量=$((随机这将生成一个锚定在特定日期的随机
开始日期
,然后生成一个比该日期晚0-7200秒的随机
结束日期

#!/bin/bash

# all start_date's will be on this day
start_date_anchor="2017-09-01"
# start_date in seconds since Unix epoch
start_date_zero=$(date -d "$start_date_anchor" +%s)
# random offset in seconds from midnight (note: RANDOM is a 15-bit int)
start_date_offset=$(( ((RANDOM<<15)|RANDOM) % 86400 ))
# random start_date in "YYYY-MM-DD HH:MM:SS" format
start_date=$(date -d @"$((start_date_zero + start_date_offset))" +"%F %T")

# 0-7200 seconds offset
end_date_offset=$((RANDOM % 7200))
# end_date in "YYYY-MM-DD HH:MM:SS" format
end_date=$(date -d @"$((start_date_zero + start_date_offset + end_date_offset))" +"%F %T")

echo "Start date: $start_date"
echo "End date: $end_date"
!/bin/bash
#所有的开始日期都在这一天
开始日期锚定=“2017-09-01”
#自Unix纪元起的开始日期(秒)
开始日期=$(日期-d“$开始日期\u锚定”+%s)
#从午夜开始以秒为单位的随机偏移量(注意:随机是15位整数)

开始日期偏移量=$((((随机添加您的操作系统、date命令的版本和您的编码工作。因此,您需要在同一天随机生成
start\u date
s?这一天是固定的,还是也是随机的?如果是随机的,在什么范围内?如果您使用macOS,我可以看到坚持
bash
3.2,但Linux?您应该升级到它还没有超过10年。在这个文件中,我需要6000行,所以我想开始日期并不重要,只要你一天中的所有时间都在工作。我在朋友的机器上做这件事。我对所有这一切都很陌生。仍在学习过程中。将你的操作系统、日期命令的版本和你的编码工作添加到你的问题中。所以你需要随机选择生成的
start\u date
s,都在同一天?这一天是固定的,还是随机的?如果是随机的,在什么范围内?如果你使用macOS,我可以看到坚持使用
bash
3.2,但是Linux?你应该升级到一个不超过10年的版本。在文件中我需要6000行,所以我猜开始日期不太重要tter只要你一天中的所有时间都在工作。我是在朋友的机器上做这件事的。我对这一切都很陌生。仍在学习过程中。