シェル括弧、角括弧は、二重括弧と二重の角括弧シーンの概要を使用します

  • 序文

    最近の研究シェルスクリプトでは、他の人がプログラムを発見したブロックIF-THEN場合は条件文があり、二重丸括弧(())、二重括弧[[]]を使用するため、関連する情報へのアクセスが、また見に良いブログに、私たちはここに記録し、共有し、利用シェルスクリプトブラケットの概要を作りました

  • 括弧内の数値1.()

  • 一般的に、コマンドでは交換可能に使用ブラケット、$協力ドル記号を使用するなど、

    #!/bin/bash
    # 输出今年的年份
    year=$(date +%Y)
    echo "This year is $year"
    

  • 2.角カッコ[]

  • 以来、IF-THENステートメントは、コマンドステータスコード以外のない試験条件ができ、それはバッシュシェル提供テストコマンドを補助するためのIF-THENステートメント等の他の条件のテスト比較値、文字列を比較し、ファイル比較、等、及びテストコマンドを速記である角括弧[] それ以外の場合はエラーになり、第一および第二の角括弧角括弧の前にスペースを入れなければなりません、

  • 2.1数値比較

比較します 説明
N1 -eq n2は チェックN1、N2が等しいです
N1 -ge n2は N1、N2は、以上にあるかどうかをチェック
N1 -gt n2は n1がn2よりも大きいかどうかをチェック
N1、N2 -The チェックN1、N2は、以下であると
N1 -lt n2は チェックn1は少ないn2よりです
N1 -ne n2は 等しくないN1、N2をチェック
  • 例としては、次のとおりです:

    #!/bin/bash
    # 1. 数值比较
    n1=20
    n2=10
    if [ $n1 -ge $n2 ]; then
        echo "n1 is greater than or euqal to n2"
    else
        echo "n1 is less than n2"
    fi
    
  • 注:バッシュシェルのみ整数を直接扱うことができ、浮動小数点数は、エラーが割り当てられます

  • 2.2文字列の比較

比較します 説明
STR1 = STR2 同じSTR1とstr2をチェック
STR1!= STR2 そのSTR1とstr2異なっをチェック
STR1 <str2の よりstr1はstr2の小さいかどうかをチェック
文字列1> STR2 チェックSTR1はSTR2よりも大きいです
-n STR1 非0 STR1の長さかどうかをチェックします
-with STR1 STR1 0の長さかどうかをチェックします
  • 例としては、次のとおりです:

    # 2. 字符串比较
    user=root
    if [ $(whoami)=$user ]; then
        echo "root is online"
    else
        echo "root is offline"
    fi
    
  • ファイルの2.3の比較

比較します 説明
-dファイル ディレクトリが存在するとされたファイルを確認します
-eファイル ある場合は、ファイルをチェックしてください
-fファイル ファイルが存在するとされたファイルを確認します
-rファイル ファイルが存在するかどうかを確認し、読み
-sファイル 空がない場合は、ファイルをチェックしてください
-wファイル ファイルが存在するかどうかを確認し、書き込み
-xファイル ファイルが存在するかどうかを確認し、実行
-Oファイル 存在し、現在のユーザーがすべてに属しているファイルをチェックしてください
-xファイル ファイルが存在するかどうかを確認し、実行
-Gファイル 存在し、現在のユーザーのデフォルト・グループが同じファイルをチェックしてください
FILE1 FILE2 -nt file1がfile2のより新しいかどうかをチェック
FILE1 FILE2 -ot file1がfile2のより古いかどうかをチェック
  • 例としては、次のとおりです:

    # 3. 文件比较
    fileName=test3
    if [ -e $fileName ]; then
        echo "$fileName  exists"
    else
        echo "$fileName doesn't exists"
    fi
    

  • 3.二重括弧(())

  • デュアルブラケットは比較文で使用できるように高度な数学

シンボル 説明
ヴァル++ 増加した後、
val-- あまりの後
++ヴァル 大きくするには
--val 最初のカット
論理否定
ビット単位の否定
** べき乗
<< 左シフト
>> 右シフト
ブールAND
| ブールまたは
&& ロジックと
|| 論理または
  • 例としては、次のとおりです:
    #!/bin/bash
    # 双括号使用练习
    var1=10
    if (($var1 >= 10)); then
        for ((i = 0; i < 3; i++)); do
            echo $i
        done
    fi
    

  • 4.二重角括弧[]

  • 双方ブレースは、数学的記号は文字列を比較するために使用することができ、文字列比較のための高度な機能を提供し、実装パターンマッチング

    #!/bin/bash
    # 双方括号使用练习
    fileName=test5
    if [[ $fileName==test* ]]; then
        echo "This is a test file!"
        if [[ $fileName==test5 ]]; then
            echo "This file is test5!"
        fi
    fi
    
  • 注:すべてのシェルの両方をサポートブラケット


  • 5.参考文献

「Linuxのコマンドラインシェルおよびスクリプト百科事典(第3版)」

リリース7件のオリジナルの記事 ウォンの賞賛4 ビュー10000 +

おすすめ

転載: blog.csdn.net/TomAndersen/article/details/104214632