2016-08-09 4 views
0

Я получаю ниже ошибки при запуске сценария оболочки. Пожалуйста, помогите [намерение для сценария, чтобы проверить, является ли версия текущей ОС (RHEL/CentOS), составляет менее 7 или нет]Проблема в скрипте оболочки

==================== ============== ОШИБКА ==============================

./test.sh: line 5: 7]: No such file or directory 
PHP 5.4 will be installed by default 

==================================================================================================================== =======================

#!/bin/bash 
# Script Name: test.sh 

VERSION=`cat /etc/redhat-release|awk '{print $4}'|cut -d "." -f1` 
if [ "$VERSION" < "7" ] 
then 
echo "PHP 5.4 need to be installed separately" 

    else 
    echo "PHP 5.4 will be installed by default" 

fi` 
+0

Трудно понять ваш вопрос. перепишите его, чтобы мы могли правильно видеть сценарий. – stzahi

+0

Что такое (') апостроф перед «#!/Bin/bash» ?? – stzahi

+1

Используйте '-lt' вместо' <'. Также используйте '[[]]' вместо '[]', чтобы предотвратить интерпретацию оболочки '<' and '>' как файловые дескрипторы/операторы. – 123

ответ

1

[ (test) встроенный (и внешний один) (а также ключевое слово [[) не поддерживает <, > Арифметические сравнения стиля. Вам нужен оператор арифметического сравнения (( или использовать -lt (менее):

(("$VERSION" < 7)) 
[ "$VERSION" -lt 7 ] 
+0

Огромное спасибо, чтобы вы меня поняли, где я был неправ. Еще раз спасибо. – SJP

0
#!/bin/bash 
# Script Name: test.sh 

VERSION=$(awk '{print $7}' /etc/redhat-release|cut -d "." -f1) 
if [ "$VERSION" -lt 7 ];then 

    echo "PHP 5.4 need to be installed separately" 

else 
    echo "PHP 5.4 will be installed by default" 

fi 

Примечание:

  1. Избегайте использование обратного одиночных кавычек. вы можете использовать var = $ (command)
  2. Для сравнения по целому классу используйте -lt, -gt, -eq, -ne для сравнения.
  3. Проверьте синтаксис своего кода на Shell-check. Вы могли бы решить это сами.
+0

Некоторое объяснение было бы полезно для OP. – 123

+0

Спасибо. Теперь работает. – SJP

+0

@ SJP рад, что это помогло. –

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