Heim  >  Artikel  >  php教程  >  So verwenden Sie Klammern in Shell

So verwenden Sie Klammern in Shell

高洛峰
高洛峰Original
2016-11-23 17:41:111324Durchsuche

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 0c55574367f335e00d3ed11372063196 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" ]]
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是否存在,满足一个条件则返回真

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* ]] 表达式为假

Klammern
[ 表达式1 -a 表达式2 ] 等效于 [[ 表达式1 && 表达式2 ]] 等效于 [ 表达式1 ] && [ 表达式2 ] 等效于 [[ 表达式1 ]] && [[ 表达式2 ]]

Einzelne Klammern

[ 表达式1 -o 表达式2 ] 等效于 [[ 表达式1 || 表达式2 ]] 等效于 [ 表达式1 ] || [ 表达式2 ] 等效于 [[ 表达式1 ]] || [[ 表达式2 ]]
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)

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

Stellungnahme:
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
Vorheriger Artikel:So verwenden Sie PyintallerNächster Artikel:So verwenden Sie Pyintaller