Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix Solaris CSH脚本中的上个月日期_Unix_Solaris_Csh - Fatal编程技术网

Unix Solaris CSH脚本中的上个月日期

Unix Solaris CSH脚本中的上个月日期,unix,solaris,csh,Unix,Solaris,Csh,作为预先要求,我需要在Unix(solaris)csh中获取上个月的日期 上面的命令将获取上个月的日期,并在Linux服务器上正常工作。但我们的服务器是Solaris,上面提到的命令不起作用 请任何人建议我如何获取上个月的日期,您应该能够为solaris平台编译,这将为您提供正确的日期实用程序。但是,正如名称所示,coreutils覆盖了核心实用程序,您可能希望将其安装到自定义路径中,并通过特殊路径选择正确的日期命令,例如“/opt/coreutils/bin/date” 另一种方法是使用符号日

作为预先要求,我需要在Unix(solaris)csh中获取上个月的日期

上面的命令将获取上个月的日期,并在Linux服务器上正常工作。但我们的服务器是Solaris,上面提到的命令不起作用


请任何人建议我如何获取上个月的日期,您应该能够为solaris平台编译,这将为您提供正确的日期实用程序。但是,正如名称所示,coreutils覆盖了核心实用程序,您可能希望将其安装到自定义路径中,并通过特殊路径选择正确的日期命令,例如“/opt/coreutils/bin/date”

另一种方法是使用符号日期输出分割计算上月

eval `date +"set YEAR=%Y; set MONTH=%m ;set DAY=%d"`
现在您可以在“$YEAR”、“$MONTH”和“$DAY”上操作。比如说

let 'MONTH--'
if [ "$MONTH" -eq 0 ]; then MONTH=12; let 'YEAR--'; fi
set Lmit_Date=`date --date "$MONTH$DAY0000$YEAR" +"%Y%m%d"`
有点。(我习惯于bash,所以我不知道这里是否有
let
。但是还有一些其他的方法来shell计算。可能还有另一个csh关键字)


您还需要注意使用$DAY参数每月的天数。

您应该能够为solaris平台编译,这将为您提供正确的日期实用程序。但是,正如名称所示,coreutils覆盖了核心实用程序,您可能希望将其安装到自定义路径中,并通过特殊路径选择正确的日期命令,例如“/opt/coreutils/bin/date”

另一种方法是使用符号日期输出分割计算上月

eval `date +"set YEAR=%Y; set MONTH=%m ;set DAY=%d"`
现在您可以在“$YEAR”、“$MONTH”和“$DAY”上操作。比如说

let 'MONTH--'
if [ "$MONTH" -eq 0 ]; then MONTH=12; let 'YEAR--'; fi
set Lmit_Date=`date --date "$MONTH$DAY0000$YEAR" +"%Y%m%d"`
有点。(我习惯于bash,所以我不知道这里是否有
let
。但是还有一些其他的方法来shell计算。可能还有另一个csh关键字)


您还需要注意$DAY参数的每月天数。

问题是由于您使用GNU日期扩展<代码>--日期是非标准的

此外,由于月份长度是可变的,GNU date显示的日期可能是意外的,至少可以说

例如,今天是3月31日,但根据GNU日期,“上个月”日期是3月2日:

$ date +%Y%m%d
20160331
$ date --date='1 month ago' +%Y%m%d
20160302
如果您仍然希望在Solaris上使用GNU date或找到一些解决方法,请查看以下回复:

问题是由于您使用的是GNU日期扩展<代码>--日期是非标准的

此外,由于月份长度是可变的,GNU date显示的日期可能是意外的,至少可以说

例如,今天是3月31日,但根据GNU日期,“上个月”日期是3月2日:

$ date +%Y%m%d
20160331
$ date --date='1 month ago' +%Y%m%d
20160302
如果您仍然希望在Solaris上使用GNU date或找到一些解决方法,请查看以下回复:

请您建议如何在solaris服务器中获取上月,您正在运行哪个solaris版本?请您建议如何在solaris服务器中获取上月,您正在运行哪个solaris版本?例如,今天是3月31日,但根据GNU日期Ooof,上月日期是3月2日。这是一种不可原谅的含糊不清的行为。我希望提问者正在重新考虑使用GNU日期来实现这一点。注意上面的手写:例如今天是3月31日,但根据GNU日期Ooof,上个月的日期是3月2日。这是一种不可原谅的含糊不清的行为。我希望提问者正在重新考虑使用GNU日期来实现这一点。注意上面的手势: