Вы должны подготовить все свои разделы, прежде чем решите выполнить жесткую установку, к сожалению, вам придется стереть вашу установку kali, объединить два раздела, а затем переустановить на этот новый раздел.
Вы увидите это для защиты от возможности сброса переменной. Рассмотрим, например:
if [ $x = "hi" ]; then echo $x; fi
Если для параметра x
установлено значение hi
, поведение будет следующим:
$ if [ $x = "hi" ]; then echo $x; fi
hi
$
Однако, если x
не установлено, вы получите сообщение об ошибке, потому что слева от=
:
$ if [ $x = "hi" ]; then echo $x; fi
zsh: parse error: condition expected: =
Добавление кавычек решает проблему:
$ if [ "$x" = "hi" ]; then echo $x; fi
$
Кроме того, добавление некоторого не -пустого значения решает проблему:
$ if [ x$x = "xhi" ]; then echo $x; fi
$ x=hi
$ if [ x$x = "xhi" ]; then echo $x; fi
hi
$
Вы, наверное, видели это без кавычек, например[ x$VAR = xstring ]
Если по какой-то причине VAR не был определен, то он ни во что не расширится, и интерпретатор скрипта выдаст ошибку вида -bash: [: =: unary operator expected
. (То есть переводчик увидит [ = string ]
и протестует против этого. )Добавляя дополнительный символ с обеих сторон, вы гарантируете, что «ничего» будет «чем-то», и тем не менее =
останется в силе. Однако с кавычками вы не получите такой ошибки, но многие люди просто добавляют лишний символ --по привычке и не обращают особого внимания на кавычки.
Это делается для того, чтобы строка не была пустой, даже если $VARIABLE
пуста. Конструкция bash
if [ $var = Y ]
ведет себя неправильно, если $var
равно ""
.