我目前正在尝试整理一个脚本,该脚本可以将用户输入的日期作为变量生成前5天,同时保持格式为YYYYMMDD。
我使用的版本是GNU bash,版本3.2.52(1)-release(i386-pc-solaris2.10)但是似乎管理员已经阻止了GNU Util的使用,所以'gdate'命令不能使用。
我曾尝试使用无效的日期-d。此外,我试图使用Perl,但似乎无法掌握如何将其操纵到最佳状态。
我目前拥有的脚本可以在下面看到,但没有返回最终日期。
#!/bin/bash
read -p "Enter the date (format = YYYYMMDD) : " Udate
echo $Udate
U2date=`TZ=GMT+24${Udate}'+%Y%m%d'`
echo $U2date
我的假设是,如果此代码有效,我只需将+24增加到+48,依此类推更多所需日期。
道歉,如果这是一个需要解决的简单问题,我对编写脚本非常陌生,而且我正在学习。
答案 0 :(得分:0)
echo“输入日期(YYYYMMDD):”
阅读Udate
时间戳= perl -MTime::Local=timelocal -e '@t = unpack ("A4A2A2", $ARGV[0]); $t[1]--; print timelocal(1,1,1,reverse
@t);' $Udate
U2date = perl -MPOSIX=strftime -e 'print strftime("%Y%m%d", localtime($ARGV[0] -86400));' $timestamp
U3date = perl -MPOSIX=strftime -e 'print strftime("%Y%m%d", localtime($ARGV[0] -172800));' $timestamp
U4date = perl -MPOSIX=strftime -e 'print strftime("%Y%m%d", localtime($ARGV[0] -259200));' $timestamp
U5date = perl -MPOSIX=strftime -e 'print strftime("%Y%m%d", localtime($ARGV[0] -345600));' $timestamp
如果有人遇到类似问题,以备将来参考。