Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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
Shell 如何在unix中将无效日期设置为有效日期? 读取行时 做 变量_temp=$line tmp_date=`date%Y-%m-“$variable_temp”` echo$(日期'+%Y-%m-%2d'-d'$tmp\U日期+1个月) 完成_Shell_Unix_Ksh - Fatal编程技术网

Shell 如何在unix中将无效日期设置为有效日期? 读取行时 做 变量_temp=$line tmp_date=`date%Y-%m-“$variable_temp”` echo$(日期'+%Y-%m-%2d'-d'$tmp\U日期+1个月) 完成

Shell 如何在unix中将无效日期设置为有效日期? 读取行时 做 变量_temp=$line tmp_date=`date%Y-%m-“$variable_temp”` echo$(日期'+%Y-%m-%2d'-d'$tmp\U日期+1个月) 完成,shell,unix,ksh,Shell,Unix,Ksh,上面的命令抛出无效的日期错误,因为11月没有第31天。它适用于其他日期,不像上面的少数例外情况 输入文件:ddt.txt Cat ddt.tx 一, 2. 5. 27 29 30 三十一 有没有办法解决31的错误 它应该能工作好几个月 我想下个月去 为什么不只是: While read line do variable_temp=$line tmp_date=`date %Y-%m-"$variable_temp"` echo $(date

上面的命令抛出无效的日期错误,因为11月没有第31天。它适用于其他日期,不像上面的少数例外情况

输入文件:ddt.txt

Cat ddt.tx

一, 2. 5. 27 29 30 三十一

有没有办法解决31的错误

它应该能工作好几个月

我想下个月去

为什么不只是:

While read line 
do 
variable_temp=$line 
tmp_date=`date %Y-%m-"$variable_temp"`               
echo $(date '+%Y-%m-%2d' -d "$tmp_date + 1 month " )
done < ddt.txt

为什么不从一个有效的日期文字开始,如果您必须键入一个特定的日期,那么就让它成为一个有效的日期!“2007-11-30”。31是从一些命令中获得的值,我想得到下个月的日期。我用更多的信息编辑了这个问题。您现在可以检查一下吗?您仍然在硬编码(在本例中是数字31)。不要那样做。始终以有效日期开始,无论您如何派生它。要查找月底,请参见(否则请使用date命令的许多选项,只要您以有效日期开始)。我不理解。11月31日没有。这样的日期并不存在
解决上述问题?
问题是什么?它按预期工作,应在11月31日出错。要解决什么问题?您提供了不起作用的代码,但我不知道您想要实现什么。如果不希望出现错误,请不要使用该代码。输出应该是什么?你想得到下个月的最后一天吗?是的,没有11月31日。我想要下个月31号的日期格式。在这种情况下,31日为12月31日。对于下一个mnth,31应该是1月31日。如果有任何其他解决方案,这将是有益的。非常感谢。
date -d "now +1 month" '+%Y-%m-31'