我正在尝试设置一个 KornShell 脚本,以便在每个月的第一天通过 FTP 传输一个文件。
创建文件时,它应该读取上个月的日期 - 如果作业在 4 月 1 日运行,文件将为 filename_MAR2023。这是包含在脚本主体中的东西还是需要在开始时设置变量?
提前谢谢你!
我已经尝试将 DATE=
date +%d%m%y
作为变量,但在我看来,这似乎只是采用当前日期并将其应用于数值。
似乎
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