test
это встроенная оболочка, которая (очевидно) проверяет некоторые заданные условия. Некоторым более старым снарядам нужна специальная команда. Так что вы также найдете программу на /usr/bin/test
.
[
это также программа для проверки некоторых условий. Это программное обеспечение также нуждается в закрывающей скобке, и вы можете найти его на /usr/bin/[
.
[[…]]
является альтернативой test
и [
. Он был разработан для оболочки Korn ( ksh
). Но вы также можете найти его в версиях Bash больше 2 и в Z Shell. У двойных скобок есть некоторые изящные особенности:
- Оболочка не разделяет слова и не раскрывает имя файла.
- Вам не нужно цитировать.
- Вместо
-a
(И) или -o
(ИЛИ) вы можете использовать &&
или ||
.
=
Может сделать намного больше.
((…))
эквивалентно let
. Так что в основном так ((expression))
же, как let "expression"
. Однако let
вы можете использовать более одного выражения, но двойные скобки допускают только одно выражение.
$((…))
(а также $[…]
) делает некоторые вычисления. Ваша оболочка пытается вычислить выражение внутри фигурных скобок и заменяет выражение результатом. Так echo $((1+1))
приводит к echo 2
. Так что ваши снаряды печатает номер 2.
Каждый раз, когда вы хотите сравнить два числа, вы должны использовать опцию с тире и двумя буквами ( -ge
и -lt
т. Д.). Если вы хотите сравнить строки, вы должны использовать =
или !=
.
На ваш вопрос о побеге довольно сложно ответить. Потому что это зависит от программного обеспечения, которое вы используете, кроме как из оболочки. То есть grep
и grep -E
нужно по-другому сбежать. Это также касается sed
, awk
и другие. Так что лучший вариант - заглянуть на страницу руководства. Через некоторое время вы привыкаете и знаете, когда использовать побег.