Klammern
Klammern werden im Allgemeinen in einfache Klammern [[]] verwendet. Klammern können auch in Ausdrücken verwendet werden.
Einzelne Klammer []
A=5 B=3 [ $A -eq $B ] 判断A是否等于B [ ${A} -eq ${B} ] 作用同上 [ "${A}" -eq "${B}" ] 作用同上
A=ABC [ $A == "ABC" ] 或写成 [ ${A} == "ABC" ] 或写成 [ "${A}" == "ABC" ] [ $A \> "ABC" ]
[ -d ./aaa.sh -a -e ./bbb ] 测试aaa.sh是否为目录并且bbb是否存在,如果都符合则返回真 [ -d ./aaa.sh -o -e ./bbb ] 测试aaa.sh是否为目录并且bbb是否存在,满足一个条件则返回真
Wir können oben einige Regeln für die Verwendung einzelner eckiger Klammern sehen:
Zwischen der Variablen und der Klammer muss ein Leerzeichen stehen.
Außerdem muss ein Leerzeichen dazwischen stehen Variable und der Operator Leerzeichen
Variablen können direkt mit $ oder mit ${} und „${}“ in Anführungszeichen gesetzt werden. Obwohl ${} direkt verwendet werden kann, wird empfohlen, „${}“ zu verwenden. , oder direkt Verwenden Sie $, um Variablen in Anführungszeichen zu setzen
Strings sollten in doppelte Anführungszeichen gesetzt werden
String-Vergleiche verwenden im Allgemeinen ==, um zu testen, ob die Strings gleich sind, und verwenden Sie < oder > Größenvergleich: Verwenden Sie Transfer >, um Größer-als- und Kleiner-als-Zeichen in einzelnen Klammern zu vergleichen. Das Vergleichsprinzip besteht darin, ASCII zu vergleichen.
Darüber hinaus können Sie auch logische Operatoren wie -a und -o in einfachen Klammern verwenden
Doppelte eckige Klammern [[]]:
A=5 B=3 [[ $A -eq $B ]] 判断A是否等于B [[ ${A} -eq ${B} ]] 作用同上 [[ "${A}" -eq "${B}" ]] 作用同上
🎜>
A=ABC [[ $A == "ABC" ]] 或写成 [[ ${A} == "ABC" ]] 或写成 [[ "${A}" == "ABC" ]] 或写成 [[ $A == ABC ]] [[ $A > "ABC" ]]
[[ -d ./aaa.sh && -e ./bbb ]] 测试aaa.sh是否为目录并且bbb是否存在,如果都符合则返回真 [[ -d ./aaa.sh || -e ./bbb ]] 测试aaa.sh是否为目录并且bbb是否存在,满足一个条件则返回真
Sie können && und || in doppelten eckigen Klammern als logische Operatoren verwenden >
Sie können Fuzzy-Matching auch in doppelten eckigen Klammern durchführen, indem Sie =~Ausdruck 2 kann ein regulärer Ausdruck seinA=ABC [[ $A =~ "A" ]] 做模式匹配,这个表达式为真 或写成 [[ ${A} =~ "A" ]] 或写成 [[ "$[A]" =~ "A" ]] [[ $A = A* ]] 表达式为真 [[ $A = B* ]] 表达式为假
Klammern
[ 表达式1 -a 表达式2 ] 等效于 [[ 表达式1 && 表达式2 ]] 等效于 [ 表达式1 ] && [ 表达式2 ] 等效于 [[ 表达式1 ]] && [[ 表达式2 ]]
Einzelne Klammern
[ 表达式1 -o 表达式2 ] 等效于 [[ 表达式1 || 表达式2 ]] 等效于 [ 表达式1 ] || [ 表达式2 ] 等效于 [[ 表达式1 ]] || [[ 表达式2 ]]
(ls ./;echo "hello";mkdir -p /tmp/ccc)
doppelte Klammern
werden häufig in arithmetischen Operationen und in For-Schleifen verwendet
echo "当前目录是:$(pwd)" echo "当前目录是:`pwd`"
Für die Form der Anweisung
1 bis 10 Schleifenausführung
A=$((5+3)) B=$(($A+4))
>
1 bis 10 Zyklen
写法1: for I in (1..10);do done 写法2: for I in seq 1 10;do done 写法3: for (( i=1 ; i<=10 ; i++ )); do done