Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.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
Linux 如何在kshell中获取前几天的日期_Linux_Bash_Unix_Ksh_Aix - Fatal编程技术网

Linux 如何在kshell中获取前几天的日期

Linux 如何在kshell中获取前几天的日期,linux,bash,unix,ksh,aix,Linux,Bash,Unix,Ksh,Aix,我有一个命令,它给出了前几天的日期: date -d '-1 day' '+%Y%d%m' 在AIX系统中运行时,相同的命令给出错误 date -u +%Y%d%m “-d是不可识别的标志” 下面的命令正在运行,它给出了AIX系统的当前日期 date -u +%Y%d%m 但下面的命令错误为“1不可识别标志” 如何在AIX中获取前几天的日期。date是一个程序,而不是shell的内置命令。因此,无论使用何种外壳,它都应该工作 falsetru@ubuntu:~$ bash falsetru

我有一个命令,它给出了前几天的日期:

date -d '-1 day' '+%Y%d%m'
在AIX系统中运行时,相同的命令给出错误

date -u +%Y%d%m
“-d是不可识别的标志”

下面的命令正在运行,它给出了AIX系统的当前日期

date -u +%Y%d%m
但下面的命令错误为“1不可识别标志”


如何在AIX中获取前几天的日期。

date
是一个程序,而不是shell的内置命令。因此,无论使用何种外壳,它都应该工作

falsetru@ubuntu:~$ bash
falsetru@ubuntu:~$ date -d '-1 day' '+%Y%d%m'
20142103
falsetru@ubuntu:~$ ksh
$ date -d '-1 day' '+%Y%d%m'
20142103
$ type date
date is a tracked alias for /bin/date

操纵时区可以在几个小时内改变时钟。 一个额外的复杂性是夏令时。由于夏时制,24小时前可以是今天或前天

你肯定昨天是20或30个小时前。哪一个?最近的一次不是今天

echo "$(TZ=GMT+30 date +%Y-%m-%d)\n$(TZ=GMT+20 date +%Y-%m-%d)" | grep -v $(date +%Y-%m-%d) | tail -1
以上命令用于ksh。使用bash时,需要echo-e:

echo -e "$(TZ=GMT+30 date +%Y-%m-%d)\n$(TZ=GMT+20 date +%Y-%m-%d)" | grep -v $(date +%Y-%m-%d) | tail -1

date-d
是一种
GNU
ism,因此在非
GNU
实现中不可用,如香草
AIX
date
。但是,您可以在
AIX
上安装
coreutils
(下载链接),它随
GNU日期一起提供
?该命令在我的系统上运行良好,使用
ksh--version
给出
sh(AT&T Research)93u+2012-08-01
您会得到什么错误?
date
的行为取决于平台,而不是shell,除非您的平台为许多unix实用程序提供了完整的ast open suite和ksh内置等价物。您好,我的系统是AIX。并将错误作为未识别标志:d@user3164140,请尝试在bash和ksh中键入日期或键入日期。比较结果。