Удалите пакет из установки на жестком диске с живого CD

Вам нужны пробелы вокруг == . В противном случае вы проходите строку «$ Choice» == 1 , чтобы , а не сравнивать , а не сравнивать $ Choice на 1 . Когда [ [ получает строку, она будет оценить значение true до тех пор, пока строка не пустая:

$ foo="bar";  [ $foo ] && echo true
true
$ foo="";  [ "$foo" ] && echo true  ## echoes nothing

вне теста кронштейнов, в отсутствие пространства, переменная на самом деле назначаться = 1 . Чтобы проиллюстрировать:

$ f==3
$ echo $f
=3
$ [ 10==12 ] && echo yes
yes

, как вы можете видеть выше, f == 3 устанавливает переменную $ f - = 3 .

Итак, в вашем , если блок , то, что тестируется, это непустая строка, которая всегда оценивает true и , если выполняется . Это будет работать:

if [ "$choice" == "1" ]
then
    baseinstall
fi

также = или == Сравнение Сравнение строки в Bash. Вы хотите арифметическое сравнение:

if [ "$choice" -eq "1" ]
then
    baseinstall
fi

0
22.01.2015, 22:04
1 ответ

Использование живого компакт-диска и ремонта загрузки. https://help.ubuntu.com/community/boot-repair

0
28.01.2020, 04:57

Теги

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