将文件的日期设置为上个月的日期 - KornShell

问题描述 投票:0回答:1

我正在尝试设置一个 KornShell 脚本,以便在每个月的第一天通过 FTP 传输一个文件。

创建文件时,它应该读取上个月的日期 - 如果作业在 4 月 1 日运行,文件将为 filename_MAR2023。这是包含在脚本主体中的东西还是需要在开始时设置变量?

提前谢谢你!

我已经尝试将 DATE=

date +%d%m%y
作为变量,但在我看来,这似乎只是采用当前日期并将其应用于数值。

shell ksh korn
1个回答
0
投票

似乎

printf
%T
指令可以像GNU的
date -d

一样解析日期时间字符串
fname="my_filename"
typeset -u date=$(printf '%(%b%Y)T' 'last month')
newname="${fname}_${date}"
print -v newname
# => my_filename_APR2023
$ printf --man
NAME
  printf - write formatted output

SYNOPSIS
  printf [ options ] format [string ...]
...
    %T    Treat string as a date/time string and format it. The T can be preceded by (dformat),
          where dformat is a date format as defined by the date command.

这是:

$ print -v .sh.version
Version AJM 93u+ 2012-08-01
© www.soinside.com 2019 - 2024. All rights reserved.