Команда "rev" :Я хочу перевернуть только $string, но она также переворачивает все до $string

[[ ведет себя так, как задумано, потому что $var==barна самом деле не является условным выражением, сравнивающим две строки, а представляет собой одну строку (, которая содержит два знака равенства ). Поскольку [[... ]]содержит только строку, а не условное выражение, по умолчанию используется флаг -nдля проверки того, не является ли строка нулевой длины -и, таким образом, оценивается с кодом выхода 0. Однако это не то, что вы хотели, поэтому, если вы хотите оценить, равно ли $var значению bar, используйте пробелы вокруг оператора ==, чтобы превратить его в условное выражение:

[[ $var == bar ]]

Из справочной страницы условных выражений:

string1 == string2

string1 = string2

True if the strings are equal. When used with the [[ command, this performs pattern matching as described above (see Conditional Constructs).

‘=’ should be used with the test command for POSIX conformance.

0
25.10.2021, 18:54
0 ответов

Теги

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