网站制作学习网Linux→正文:date: illegal option -- d
字体:

date: illegal option -- d

Linux 2023/8/15 22:09:14  点击:不统计

原载于:文章来源:www.forasp.cn网站制作学习

在shell 获取前N天时,mac os 系统出现了 date: illegal option -- d 的提示,显示参数错误。
查询后知道了,mac os 和linux 是有差异的。
 
首先看原始 linux 查询前 15天命令:
 
#!/bin/bash
ago=$(date -d "15 day ago " +%Y-%m-%d)
echo ${ago}
这个在linux下运行是没有问题的
 
其次,但是在 mac os下会出现 date: illegal option -- d 的错误提示。
 
date: illegal option -- d
usage: date [-jnRu] [-I[date|hours|minutes|seconds]] [-f input_fmt]
            [-r filename|seconds] [-v[+|-]val[y|m|w|d|H|M|S]]
            [[[[mm]dd]HH]MM[[cc]yy][.SS] | new_date] [+output_fmt]
 
 
再次, mac os 解决方案:
安装扩展
> brew install coreutils 
修改命令
 
#!/bin/bash
# 获取几天前
ago=$(gdate -d "15 day ago " +%Y-%m-%d)
echo ${ago}
 
这样就解决了mac 系统下的出现 date: illegal option -- d 的问题。
 
最后 解决自动识别系统,并解决 date: illegal option -- d
 
#!/bin/bash
system=`uname`
if [ "$system" == "Darwin" ]; then
  # 这里是 macOS 下的代码
  log=$(gdate -d "15 day ago " +%Y-%m-%d)
else
  # 这里是 Linux 下的代码
  log=$(date -d "15 day ago " +%Y-%m-%d)
fi
echo ${log}

·上一篇:shell统计linux ssh连接login失败ip次数 >>    ·下一篇: No package 'openssl' found >>
推荐文章
最新文章