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