Как сравнить версию чего-то с числом в исполняемом файле удара?

Я знаю, что задаю вопросы немного близко друг к другу, но я, может казаться, не понимаю это.

У меня есть следующий код:

currentver="$(lsb_release -rs)"
requiredver="18.04"
if ["$(printf '%s\n' "$requiredver" "$currentver" | sort -V | head - n1)" = "$requiredver"]
then 
    read -p "Ubuntu?: " vari
else
    read -p 'Hello?: ' var
fi  

Однако я всегда получаю эту ошибку: ./test.sh: line 3: [18.04: command not found. Я попытался выдержать сравнение currentver с 18.04 как сравнение чисел, я попытался сравнить их как строки, но ничто, кажется, не работает!

Любая справка (как всегда) значительно ценившая.

0
задан 31 July 2019 в 23:32

1 ответ

Просто нужны пробелы с обоих концов если оператор:

currentver="$(lsb_release -rs)"
requiredver="18.04"
if [ "$(printf '%s\n' "$requiredver" "$currentver" | sort -V | head - n1)" = "$requiredver" ]
then 
    read -p "Ubuntu?: " vari
else
    read -p 'Hello?: ' var
fi  

ой

2
ответ дан 23 October 2019 в 08:00

Другие вопросы по тегам:

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