mis*_*ded 6 unix bash shell solaris solaris-10
我希望在unix/shell脚本中获取上一个日期.
我使用以下代码
date -d ’1 day ago’ +’%Y/%m/%d’
但是我收到以下错误.
date: illegal option -- d
至于我在inetrnet上读到的内容,它基本上意味着我使用的是旧版本的GNU.任何人都可以帮助这个.
更多信息
unix> uname -a
SunOS Server 5.10 Generic_147440-19 sun4v sparc SUNW,Sun-Fire-T200
以下命令也会出错.
unix> date --version
date: illegal option -- version
usage: date [-u] mmddHHMM[[cc]yy][.SS]
date [-u] [+format]
date -a [-]sss[.fff]
Run Code Online (Sandbox Code Playgroud)
dtd="2015-06-19"
yesterday=$( date -d "${dtd} -1 days" +'%Y_%m_%d' )
echo $yesterday;
Run Code Online (Sandbox Code Playgroud)
小智 5
为了使用 date 命令获得 1 天的回溯日期:
date -v -1d它将给出 (当前日期 -1) 表示 1 天前。
date -v +1d
这将给出 (当前日期 +1) 意味着 1 天后。
类似地,下面的编写代码可以用来代替 来d查找年、月等
y-Year,
m-Month
w-Week
d-Day
H-Hour
M-Minute
S-Second
您可以使用
date -d "30 days ago" +"%d/%m/%Y"
Run Code Online (Sandbox Code Playgroud)
要获得30天前的日期,同样可以用x天数替换30
这里建议的几个解决方案假设GNU coreutils系统上存在。以下内容应在 Solaris 上运行:
TZ=GMT+24 date +\xe2\x80\x99%Y/%m/%d\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\n