2015-04-14 7 views
0

Я пробовал много версии этого, но ни один из них не работает. Я хочу сравнить переменную - здесь это будет версия os с некоторой строкой. Я хочу проверить, больше ли это указанной версии. Когда я передаю точное имя, это нормально, но когда я хочу что-то заменить. * Он не работает.Как сравнить переменную с текстом в unix

if [[ "$(uname -r)" == '3\.18.*' ]]; 

then echo bravo; 

fi 

как заставить его работать? спасибо заранее

+0

Прочтите руководство по оператору ['[['] (http://www.gnu.org/software/bash/manual/bash.html#index-_005b_005b). Я думаю, вам нужен конечный '. *' Вне кавычек. –

ответ

2

Я хотел бы использовать случай заявление здесь:

case $(uname -r) in 
(3.18.*) echo bravo;; 
esac 

Если вы хотите проверить, если версия больше, чем некоторое значение или нет, вы можете использовать что-то вроде:

case $(uname -r) in 
(3.1[89].*|3.[2-9]*|[4-9]*) echo bravo;; 
(*) echo alpha;; 
esac 
+0

Это очень классический способ сделать это, и это тоже довольно однозначно. –

 Смежные вопросы

  • Нет связанных вопросов^_^