Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> シェルプログラミング条件テスト

シェルプログラミング条件テスト

  

まず、条件付きテストの構文:

<テストの内容>
<テストの内容> ##括弧とテストの内容の間にはスペースが必要です。

  • [[テスト内容]]
  • ((テスト内容))##は値の値をテストするためにのみ使用できます。詳細は後述します。

    最初の3つのテスト文法は基本的に同等です。 。

    2番目に、数値テスト:

    2.1一般的な数値テスト:

  • int1 -eq int2 int1がint2に等しい場合、trueを返します。
  • int1 -ne int2 int1がint2と等しくない場合にtrueを返します。
  • int1 -lt int2 int1がint2より小さい場合にtrueを返します。
  • int1 -gt int2 int1がint2より大きい場合にtrueを返します。 Br>
  • int1 -le int2 int1がint2以下の場合はtrueを返します。
  • int1 -ge int2 int1がint2以上の場合はtrueを返します。

    2.2 ))試験

    ログイン

  • <(使用より小さい)((&二重括弧内QUOT; INT1"<" INT2"))と等価である[INT1 -lt INT2


    [root @ server1〜]#((" 2"<" 3"))[root @ server1〜]#echo $?0 [root @ server1〜]#[ ,null,null,3],1 -lt 3] [root @ server1〜]#echo $?0

  • < =(二重括弧内で使用)以下((" int1"< = int2") ))は[int1 -ne int2]と同じです。
  • >がより大きい(二重括弧内で使用)((" int1">" int2")) [int1 -gt int2]と同じです。
  • > =以上(二重括弧内で使用)(( "int1"> = "int2"))は[int1 -ge int2] <と同等です。 Br>

    注意:二重括弧テストでは、等しい値の場合はテストできません。二重括弧テストを使用すると、次のエラーが報告されます。

    [root @ server1〜]#((" 2" =( "3")) - bash:((:2 = 3:変数に代入しようとしました(エラートークンは "= 3"))

    3、test string:
    < Br>

  • -z string文字列は空の文字列です(長さ0)。trueを返します。
  • -n string Stringは、空でない文字列であればtrueを返します。
  • str1 = str2文字列str1と文字列str2が等しい場合はtrueを返します。文字列str1と文字列str2が等しくない場合はtrueを返します。<
  • str1 == str2 same =
  • str1!= str2 > str1< str2が辞書順にソートされている場合、ストリングstr1はストリングstr2の前には使用されません。
  • str1> str2は辞書順にソートされ、ストリングstr1はストリングstr2の後にあります。使用します

    例を試してください。

    [root @ server1〜]#A = str [root @ server1〜]#B = str [root @ server1〜]#[$ A = $ B] [root @ server1〜]#エコー$?0 [root @ server1〜]#B = Str [root @ server1〜]#[$ A = $ B] [root @ server1〜]#echo $?1 [root @ server1〜]#[-n $ B] [root @ server1〜]#echo $?0 [root @ server1〜]#[-z $ B] [root @ server1〜]#echo $?1

  • Copyright © Windowsの知識 All Rights Reserved