-
序文
最近の研究シェルスクリプトでは、他の人がプログラムを発見したブロック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
シンボル | 説明 |
---|---|
ヴァル++ | 増加した後、 |
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
-
注:すべてのシェルの両方をサポートブラケット
「Linuxのコマンドラインシェルおよびスクリプト百科事典(第3版)」