我们如何使用bash脚本在AIX机器上操作日期?

时间:2014-10-08 10:56:46

标签: bash aix

我的脚本有一个命令: 日期-d -30days 。 在Linux机器上运行时,脚本按预期运行。 但是,在AIX机器上运行时,会出现错误"非法选项 - d"。 因此,应该编写哪些代码/命令是通用的,而不管运行脚本的底层操作系统如何。 我需要基本上从当前日期减去30天并使用操纵日期。

1 个答案:

答案 0 :(得分:0)

" bash脚本编写"表示您调用非内置实用程序,例如date和是perl

由于AIX 上的date命令不能执行您希望它执行的操作,因此需要打开来替代。

past_date=$(
  perl -MTime::Local -MPOSIX=strftime -le '
    $now = timelocal(0,0,12,(localtime)[3,4,5]); 
    $ago = $now - 30 * 86400; 
    print strftime("%Y-%m-%d %T %Z",localtime($ago))
  '
)

调整您的strftime格式以满足您的需求。

我假设你的perl发行版不是最新的。我会这样做:

perl -MDateTime -E 'say DateTime->now->set_time_zone("local")->add(days=>-30)->strftime("%F %T %Z")'