Вы хотите определить, какую версию команды date
вы используете, а не обязательно версию ОС.
Команда GNU Coreutils date
принимает опцию --version
; другие версии не:
if date --version >/dev/null 2>&1 ; then
echo Using GNU date
else
echo Not using GNU date
fi
Но, как предполагает Уильям Перселл, если это вообще возможно, вы должны просто использовать функциональность, общую для обоих.
(я думаю опции, доступные для даты GNU, в значительной степени являются расширенным набором опций, доступных для версии BSD; если это так, то код, предполагающий, что версия BSD должна работать с версией GNU. )