シェル プログラミングを学習していたとき、さまざまな括弧の使用法に混乱しました。徐々に慣れて蓄積することで、ついにすべての括弧の使い方をマスターしました。それでは、私がまとめた内容を皆さんにシェアしたいと思います。
注: このドキュメントを読む前提条件は、bash およびシェル プログラミングの基礎をすでに持っていることです。
#単一括弧 ()
ただし、括弧には 2 つの一般的な機能があります: コマンド置換と配列初期化です。コマンド置換#$() 構造が見つかると、シェルは括弧内のコマンドを実行し、結果を返します
# tmp=$(date) # echo $tmp Fri Sep 18 10:22:30 CST 2020
配列の初期化# 初始化数组
lnmp=(linux nginx mysql php)
二重括弧 (()) があることに注意してください。括弧内の単語は C 言語の構文に準拠する必要があり、変数名を使用するときに $ 記号を追加する必要はありません。
二重括弧はより頻繁に使用され、整数の計算に使用できます (小数はサポートされていません)。例:$((3 2))
# echo $((1+3)) 4 # n1=3 # echo $((n1+7)) 10
C言語文法の演算拡張に準拠していれば括弧内に記述できます
# echo $((3+4>5 ? 1 :0)) 1 # echo $((3+4>9 ? 1 :0)) 0
変数値を再代入します。記号
# i=1;((i++));echo $i; 2 # i=1;((i=100));echo $i; 100
二重括弧は for ループでよく使用されます
for ((i=0;i<5;i++));do echo -n $i;done
単一角括弧[]単一角括弧が最も一般的 論理的な判断に使用されるほか、配列の添字として使用したり、正規表現で範囲を表すこともできます。条件判定用のシェル スクリプト:
if [ 1 > 2 ] then …… fi
は配列の添字としても使用できます。 :
# echo ${lnmp[1]} nginx
は範囲を示すために正規表現で使用されます
[0-9] 表示数子0-9都行
二重括弧
は単一括弧、二重括弧と同じです。 条件判定でも使用されますが、単一角括弧よりも一般的です。例を次に示します。 [ a > b ] && [ a > 0 ]或[ a > b -a a > 0 ]
改成双括号
[[ a > b && a > 0 ]]
単一中括弧 {}
中括弧の展開。 (グロビング) は中括弧で囲まれたファイル名を展開します。中括弧内では、空白を引用符で囲むかエスケープしない限り、空白は使用できません。 たとえば、コマンド rm -f {1,2}.txt を入力すると、ファイル 1.txt と 2.txt が削除されます。
単一中括弧内の .. の役割
ここの 2 つのドットは範囲を表します。たとえば、echo {1..10} #将打印1,2,3,4,5,6,7,8,9,10
中かっこは、コード ブロックのシェル スクリプトでもよく使用されます。
最初に加えて、単一中括弧を使用して変数の内容を置換および削除したり、変数の内容をテストしたりすることもできます。一般的な例を示します。多くの場合、変数が存在するかどうかを確認し、存在しない場合は変数に新しい値を設定します。
val=${n1:-test}
上記のコードは、変数 n1 が存在しないか空の場合、val 変数値が test に設定され、それ以外の場合は val 値が n1 変数の値であることを意味します。
以上がLinuxにおけるシェルにおける各種括弧の機能と使い方を網羅的に整理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。