如何在Autosys中创建获取上月最后一天的全局变量?
实现Autosys全局变量获取上月最后一天的方法
你可以通过修改date命令参数来实现需求,根据服务器操作系统类型选择对应命令:
GNU/Linux 环境(多数服务器默认使用)
替换原有命令为:
command: sendevent -E SET_GLOBAL -G "Blackrock_CASHFLOWdate=$(date -d "$(date +%Y-%m-01) -1 day" '+%Y%m%d')"
逻辑说明:
date +%Y-%m-01:获取当前月份的第一天(如2024年6月执行时得到2024-06-01)-d "$(...) -1 day":将当月第一天向前推1天,得到上月最后一天'+%Y%m%d':将日期格式化为YYYYMMDD的数字格式
BSD/macOS 环境
若服务器是BSD系统或macOS,使用-v参数调整日期:
command: sendevent -E SET_GLOBAL -G "Blackrock_CASHFLOWdate=$(date -v1d -v-1d '+%Y%m%d')"
逻辑说明:
-v1d:跳转至当前月份第一天-v-1d:再向前推1天,得到上月最后一天'+%Y%m%d':格式化为YYYYMMDD格式
验证建议
在配置Autosys任务前,可先在shell中单独执行date部分的命令,确认输出是否符合预期(比如2024年6月执行时应返回20240531)。
内容的提问来源于stack exchange,提问作者Loganayaki mahalingam
相关产品推荐
相关产品推荐

