скрипт с датой работает в Linux, но не в AIX

Creo que en tu caso

-prune -o -type f

es ambiguo:-oque significa "o", cuando findencuentra un directorio, el -prunees verdadero, por lo que -type fno se evalúa

1
04.04.2019, 16:33
2 ответа

-dявляется расширением GNU date,(busyboxиast-opendateтакже имеют одно, но работают по-разному ).

AIX поставляется с ksh93, поэтому нет необходимости в GNU date, чтобы получить предыдущий рабочий день:

day=2016-01-01
previous_working_day=$(D=$day ksh93 -c '
  printf "%(%F)T" "$D, $(($(printf "%(%w)T" "$D") == 1 ? 3 : 1)) day ago"')
2
28.04.2021, 23:35
D_MINUS_ONE=

GetLastDay()
{
        last_day=$(D=$1 ksh93 -c 'printf "%(%F)T" "$D, $(($(printf "%(%w)T" "$D") == 1 ? 3 : 1)) day ago"')
        db2 -x "SELECT COUNT(*) FROM HOLIDAY WHERE DT_HOLIDAY='$last_day'" | read lines
        if [ lines -gt 0 ]
        then
                GetLastDay $last_day
        fi
        D_MINUS_ONE=$last_day
}

GetLastDay $1

echo $D_MINUS_ONE
0
28.04.2021, 23:35

Теги

Похожие вопросы