You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在KornShell脚本中设置文件名为上月日期格式?

KornShell脚本实现每月1日FTP传输并以上月日期命名文件

关于逻辑存放的建议

建议将上月日期格式生成逻辑预先定义为变量,而非直接写在脚本主体中,原因如下:

  • 代码结构更清晰,日期生成逻辑与FTP传输逻辑分离,便于阅读和维护
  • 日期格式需要调整时,仅需修改变量定义,无需改动核心传输代码
  • 变量可重复调用,若脚本其他环节需用到上月日期,直接引用即可

正确生成上月日期格式的方法

你之前使用的DATE=date +%d%m%y``仅能获取当前日期的数值格式,要生成类似MAR2023的上月日期格式,需借助date命令的相对日期参数:

适用于GNU date(Linux系统)

# 定义上月日期变量,%b为英文月份缩写,%Y为4位年份
LAST_MONTH=$(date -d "last month" +"%b%Y")

适用于BSD date(如macOS、FreeBSD)

LAST_MONTH=$(date -v -1m +"%b%Y")

完整脚本示例

#!/usr/bin/ksh

# 定义上月日期格式变量(根据系统选择对应命令)
LAST_MONTH=$(date -d "last month" +"%b%Y")
# LAST_MONTH=$(date -v -1m +"%b%Y") # BSD系统启用此行

# 生成目标文件名
TARGET_FILE="filename_${LAST_MONTH}"

# 校验当前日期是否为每月1日,避免非指定时间执行
CURRENT_DAY=$(date +%d)
if [ "${CURRENT_DAY}" != "01" ]; then
    echo "今日非1号,终止FTP传输"
    exit 1
fi

# FTP传输逻辑示例
ftp -inv << EOF
open 你的FTP服务器地址
user 用户名 密码
put ${TARGET_FILE}
bye
EOF

内容的提问来源于stack exchange,提问作者STAKD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:00:08