В скрипте выполняется стандартная проверка – не является ли переменная пустой:
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 }
Так – скрипт сработает без ошибок.