シェルで括弧を使用する方法

高洛峰
リリース: 2016-11-23 17:41:11
オリジナル
1367 人が閲覧しました

括弧

括弧は、一重括弧[]と二重括弧[[]]に分けられます。角括弧は一般に式の判定に使用されますが、括弧は後述する式にも使用できます。

単一角かっこ []

A=5
B=3
[ $A -eq $B ]    判断A是否等于B
[ ${A} -eq ${B} ]  作用同上
[ "${A}" -eq "${B}" ]  作用同上
ログイン後にコピー

演算子と演算子の間にはスペースも必要です

変数は $ で直接参照することも、${} で参照することもできますそして「${} ${} を直接使用することもできますが、"${} " を使用するか、 $ を直接使用して変数を引用することをお勧めします

文字列は二重引用符で囲む必要があります

文字列の比較では、通常、== を使用して、文字列が同じであり、サイズ比較には < または > を使用します。括弧内の文字を大なり小なり比較するには、transfer > を使用します。比較の原則は ASCII を比較することです。

さらに、単一角括弧内で -a や -o などの論理演算子を使用することもできます

二重角括弧 [[]]:

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是否存在,满足一个条件则返回真
ログイン後にコピー

A=5
B=3
[[ $A -eq $B ]]    判断A是否等于B
[[ ${A} -eq ${B} ]]  作用同上
[[ "${A}" -eq "${B}" ]]  作用同上
ログイン後にコピー

二重角括弧を使用する規則は、単一角括弧を使用する規則と似ています


二重角括弧間の文字列の大小比較はエスケープする必要はなく、文字列は二重引用符なしで引用できます

二重角括弧内で使用できます &&、|| は論理演算子として使用できます

二重括弧内であいまい一致を行うこともできます。 =~式 2 は正規表現にすることもできます

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是否存在,满足一个条件则返回真
ログイン後にコピー

単一括弧

括弧

単独で使用される単一括弧はコマンドグループを表し、括弧内のコマンドはサブシェルを通じて順番に実行されます

A=ABC
[[ $A =~ "A" ]]   做模式匹配,这个表达式为真
或写成  [[ ${A} =~ "A" ]]  或写成  [[ "$[A]" =~ "A" ]]
[[ $A = A* ]] 表达式为真  [[ $A = B* ]] 表达式为假
ログイン後にコピー

最も一般的な使用法は次のとおりです。バッククォートはコマンド置換にも使用できます。

[ 表达式1 -a 表达式2 ] 等效于 [[ 表达式1 && 表达式2 ]] 等效于 [ 表达式1 ] && [ 表达式2 ] 等效于 [[ 表达式1 ]] && [[ 表达式2 ]]
ログイン後にコピー


二重括弧

は算術演算でよく使用され、for ループでも使用されます

[ 表达式1 -o 表达式2 ] 等效于 [[ 表达式1 || 表达式2 ]] 等效于 [ 表达式1 ] || [ 表达式2 ] 等效于 [[ 表达式1 ]] || [[ 表达式2 ]]
ログイン後にコピー

For文

1〜10ループ実行

(ls ./;echo "hello";mkdir -p /tmp/ccc)
ログイン後にコピー


while文形式

1〜10ループ

echo "当前目录是:$(pwd)"
echo "当前目录是:`pwd`"
ログイン後にコピー


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート