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 вступите в брак.
В ударе можно выполнить замены регистра легко, например, если 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
~$