Как включить обновления патча Oracle JDK 8 на существующей установке JDK 8 в CentOS

Замените:

if [ "$choice"==1 ]

с:

if [ "$choice" = 1 ]

сделать то же самое для всех последующих тестов.

Объяснение

Когда оболочка видит «$ Choice» == 1 , он видит одну строку. Если бы выбор был, например, 2, то он видит строку 2 == 1 . Это не тест на равенство. Это строка. Поскольку это непустая строка, тест возвращает true. Следовательно, все варианты выполнены.

Для того, чтобы распознать тест на равенство, необходимы пробелы.

отдельно, а как незначительная точка для [ стилей тестов, символ для равенства составляет = . Bash будет принимать == для этого, но это не правильно и не будет работать в других снарядах.

Исследование [...] [...] [...] [...] тесты на командной строке

. Легко исследовать, как [[ тесты работают в командной строке. Во-первых, давайте продемонстрируем, что пустые строковые тесты false:

$ if [ "" ]; then echo True; else echo False; fi
False

непустой строки, что бы она ни было, является True:

$ if [ abc ]; then echo True; else echo False; fi
True

Теперь давайте посмотрим 2 == 1 :

$ if [ 2==1 ]; then echo True; else echo False; fi
True

2 == 1 - это непустая строка, она проверяет истину.

Теперь давайте добавим пробелы и выполняем проверки равенства:

$ if [ 2 = 1 ]; then echo True; else echo False; fi
False
$ if [ 2 = 2 ]; then echo True; else echo False; fi
True

в качестве дополнительной тонкости = тесты на равенство строки, которое происходит, чтобы работать хорошо. Чтобы проверить числовое равенство, используйте -EQ вместо этого.

$ if [ 2 -eq 2 ]; then echo True; else echo False; fi
True
0
23.05.2017, 15:39
1 ответ

Вы хотите обновить JDK8, используя «yum Update»?

либо с yum localinstall $ newrpm (ручное решение)

или построить репозиторий, содержащий Oracle -RPMS и ссылка, которая позволила репозитой в /etc/yum.repos.d/

после этого Обновление Yum также должно обновить Oracle-JDK.

0
28.01.2020, 04:57

Теги

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