Heim > php教程 > PHP开发 > So verwenden Sie Klammern in Shell

So verwenden Sie Klammern in Shell

高洛峰
Freigeben: 2016-11-23 17:41:11
Original
1391 Leute haben es durchsucht

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}" ]  作用同上
Nach dem Login kopieren

A=ABC
[ $A == "ABC" ]   或写成  [ ${A} == "ABC" ]   或写成  [ "${A}" == "ABC" ]
[ $A \> "ABC" ]
Nach dem Login kopieren

[ -d ./aaa.sh -a -e ./bbb ]  测试aaa.sh是否为目录并且bbb是否存在,如果都符合则返回真
[ -d ./aaa.sh -o -e ./bbb ]  测试aaa.sh是否为目录并且bbb是否存在,满足一个条件则返回真
Nach dem Login kopieren

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}" ]]  作用同上
Nach dem Login kopieren

                                                                                            🎜>

A=ABC
[[ $A == "ABC" ]]   或写成  [[ ${A} == "ABC" ]]   或写成  [[ "${A}" == "ABC" ]] 或写成 [[ $A == ABC ]]
[[ $A > "ABC" ]]
Nach dem Login kopieren
Die Regeln für die Verwendung doppelter eckiger Klammern ähneln den Regeln für die Verwendung einfacher eckiger Klammern

Der Größer-als-Kleiner-Vergleich von Zeichenfolgen zwischen doppelten eckigen Klammern erfordert kein Escape, und die Zeichenfolgen können ohne doppelte Anführungszeichen angegeben werden.
[[ -d ./aaa.sh && -e ./bbb ]]  测试aaa.sh是否为目录并且bbb是否存在,如果都符合则返回真
[[ -d ./aaa.sh || -e ./bbb ]]  测试aaa.sh是否为目录并且bbb是否存在,满足一个条件则返回真
Nach dem Login kopieren

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 sein
A=ABC
[[ $A =~ "A" ]]   做模式匹配,这个表达式为真
或写成  [[ ${A} =~ "A" ]]  或写成  [[ "$[A]" =~ "A" ]]
[[ $A = A* ]] 表达式为真  [[ $A = B* ]] 表达式为假
Nach dem Login kopieren

Klammern
[ 表达式1 -a 表达式2 ] 等效于 [[ 表达式1 && 表达式2 ]] 等效于 [ 表达式1 ] && [ 表达式2 ] 等效于 [[ 表达式1 ]] && [[ 表达式2 ]]
Nach dem Login kopieren

Einzelne Klammern

[ 表达式1 -o 表达式2 ] 等效于 [[ 表达式1 || 表达式2 ]] 等效于 [ 表达式1 ] || [ 表达式2 ] 等效于 [[ 表达式1 ]] || [[ 表达式2 ]]
Nach dem Login kopieren
Einzelne Klammern allein stellen eine Befehlsgruppe dar, und die Befehle in den Klammern werden nacheinander über a ausgeführt Subshell.


Die häufigste Verwendung wird bei der Befehlsersetzung verwendet. Bei der Befehlsersetzung können auch Backticks verwendet werden ``

(ls ./;echo "hello";mkdir -p /tmp/ccc)
Nach dem Login kopieren

doppelte Klammern

werden häufig in arithmetischen Operationen und in For-Schleifen verwendet

echo "当前目录是:$(pwd)"
echo "当前目录是:`pwd`"
Nach dem Login kopieren


Für die Form der Anweisung

1 bis 10 Schleifenausführung

A=$((5+3))
B=$(($A+4))
Nach dem Login kopieren

>

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
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage