/
bash_command
112 lines (66 loc) · 2.59 KB
/
bash_command
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
сравнение целых чисел
-eq
равно
if [ "$a" -eq "$b" ]
-ne
не равно
if [ "$a" -ne "$b" ]
-gt
больше
if [ "$a" -gt "$b" ]
-ge
больше или равно
if [ "$a" -ge "$b" ]
-lt
меньше
if [ "$a" -lt "$b" ]
-le
меньше или равно
if [ "$a" -le "$b" ]
<
меньше (внутри двойных круглых скобок )
(("$a" < "$b"))
<=
меньше или равно (внутри двойных круглых скобок)
(("$a" <= "$b"))
>
больше (внутри двойных круглых скобок)
(("$a" > "$b"))
>=
больше или равно (внутри двойных круглых скобок)
(("$a" >= "$b"))
сравнение строк
=
равно
if [ "$a" = "$b" ]
==
равно
if [ "$a" == "$b" ]
Синоним оператора =.
[[ $a == z* ]] # истина, если $a начинается с символа "z" (сравнение по шаблону)
[[ $a == "z*" ]] # истина, если $a равна z*
[ $a == z* ] # имеют место подстановка имен файлов и разбиение на слова
[ "$a" == "z*" ] # истина, если $a равна z*
!=
не равно
if [ "$a" != "$b" ]
Этот оператор используется при поиске по шаблону внутри [[ ... ]].
<
меньше, в смысле величины ASCII-кодов
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
Обратите внимание! Символ "<" необходимо экранировать внутри [ ].
>
больше, в смысле величины ASCII-кодов
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
Обратите внимание! Символ ">" необходимо экранировать внутри [ ].
-z
строка "пустая", т.е. имеет нулевую длину
-n
строка не "пустая".
-o or ||
или
-a and &&
и
Оператор -n требует, чтобы строка была заключена в кавычки внутри квадратных скобок. Как правило, проверка строк, не заключенных в кавычки, оператором ! -z, или просто указание строки без кавычек внутри квадратных скобок, проходит нормально, однако это небезопасная, с точки зрения отказоустойчивости, практика. Всегда заключайте проверяемую строку в кавычки.