Archive

Posts Tagged ‘bash’

Відмінності між одинарними ([ ]) і подвійними ([[ ]]) скобами у bash

[ і [[ використовуються для обчислення виразів. [[ працює лише в Bash, Zsh і Korn оболонках, і вона більш потужна; [ доступна в усіх POSIX оболонках.

Одинарна скоба [ насправді це те саме, що команда test, тобто це не синтаксис.

Подвійні скоби [[ ]] – це синтаксис. Вони дозволяють C-подібний синтаксис із >, <, >=, <=, !=, ==, &&, || операторами.

Усередині одинарних скоб, вам потрібно використовувати подвійні лапки навколо змінних, як і в більшості інших місць, оскільки це запобігає тлумаченню всіх спеціальних символів усередині рядка в лапках окрім $, `, \. Усередині подвійних скоб, вам не потрібні подвійні лапки, оскільки оболонка не виконує розбиття на слова чи глобування (globbing): вона розбирає умовний вираз, а не команду.

Хоча є виняток – [[ $var1 == "$var2" ]] де необхідно використати лапки, якщо ви бажаєте виконати побайтове порівняння рядків, інакше, $var2 був би шаблоном для порівняння з $var1.

Читати далі…

Advertisements
Категорії:Uncategorized Позначки: