В скрипте выполняется стандартная проверка — не является ли переменная пустой:
if [ $VERS ] then echo "$VERS" sort -n -t . -k 1 else echo "Can't get versions list!" fi
Но при запуске — bash
сообщает об ошибке:
$ ./version.sh ./version.sh: line 11: [: too many arguments Can't get versions list!
Проблема заключается в том, что в переменной $VERS
содержится слишком много строк, и стандартная утилита [
(исполняемый файл /usr/bin/[
которая является аналогом утилиты /usr/bin/test
) не может их обработать.
В таком случае — можно использовать возможность bash
— [[
, которая аналогична стандартному test
— но имеет больше возможностей:
if [[ $VERS ]] then echo "$VERS" sort -n -t . -k 1 else echo "Can't get versions list!" fi }
Так — скрипт сработает без ошибок.