Command to сравнил two strings

I need to сравнил two strings and ignoring the вступил в брак of the contents. IF [$first! = $second]. Anything I хан add to this command so that the comparison проигнорируй the вступите в брак.

6
задан 9 December 2015 в 08:36

1 ответ

В ударе можно выполнить замены регистра легко, например, если var="vAlUe" тогда

$ echo "${var^^}"
VALUE

, в то время как

$ echo "${var,,}"
value

можно использовать это для создания Вас сравнением нечувствительный к регистру путем преобразования обоих аргументов тому же случаю, т.е.

if [ "${first,,}" == "${second,,}" ]; then
  echo "equal"
fi

или

if [ "${first^^}" == "${second^^}" ]; then
  echo "equal"
fi
<час>

, Другой подход должен использовать удар nocasematch опция (благодарит @Tshilidzi_Mudau), хотя это, кажется, работает только с [[ ... ]] расширенный тестовый оператор:

$ first=abc; second=ABC
$ (shopt -s nocasematch; if [[ "$first" == "$second" ]]; then echo "Match"; else echo "No match"; fi)
Match

, но

$ (shopt -s nocasematch; if [ "$first" == "$second" ]; then echo "Match"; else echo "No match"; fi)
No match
~$ 
21
ответ дан 23 November 2019 в 07:16

Другие вопросы по тегам:

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