Скриптът ми има една команда: дата -d -30 дни , Скриптът, когато се изпълнява на машина с Linux, работи катоочакван . Въпреки това, когато се изпълнява на машина AIX, дава грешка "незаконна опция - d". И така, кой кодекс / команда трябва да бъде написана, която ще бъде универсална, независимо от основната операционна система, на която се изпълнява скрипта. Трябва основно да извадя 30 дни от текущата дата и да използвам манипулираната дата.
Отговори:
0 за отговор № 1"bash scripting" означава, че наричате не-вградени комунални услуги, като date
и да perl
.
От командата за дата на AIX не мога направете каквото искате да направите, вие трябва да бъдат отворени към алтернативи.
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")"