このシェル スクリプトで" ~
" と " " が使用されている理由を教えてください。これは、特定の日付より古いファイルを削除するスクリプトの一部です。+$
if ! [[ $FILE_AGE =~ "^[0-9]+$" ]]; then
usage
exit 1
スクリプトのこの部分が、数字とアルファベットのどちらを入力しているかを確認するために使用されていることは理解できます。
このシェル スクリプトで" ~
" と " " が使用されている理由を教えてください。これは、特定の日付より古いファイルを削除するスクリプトの一部です。+$
if ! [[ $FILE_AGE =~ "^[0-9]+$" ]]; then
usage
exit 1
スクリプトのこの部分が、数字とアルファベットのどちらを入力しているかを確認するために使用されていることは理解できます。
この=~
演算子は、「左側の文字列が右側の正規表現と一致する場合は true、そうでない場合は false」を意味します。
^[0-9]+$
は、文字列の先頭 ( )で始まり、文字列の最後 ( ) で終わる、+
0 から 9 (つまり ) の範囲の 1 つ以上の (つまり ) 文字のシーケンスを探すことを意味します。[0-9]
^
$
これは基本的な bash と正規表現です。詳細については、Bash のマンページを参照してください。
は=~
正規表現一致演算子で、はではなく+
パターン に属します。この条件は、変数 FILE_AGE の値が(行/文字列の開始) と(行/文字列の終了) の間のパターン (1 つ以上の数字) と一致するかどうかをテストします。[0-9]+
$
[0-9]+
^
$
=~は正規表現マッチです
$は正規表現の一部で^[0-9]+$
あり、文字列の末尾に一致することを意味します
チュートリアルまたはガイドの Google の「正規表現」
「Bash script equals tilde operator」の Google:
ドル記号については、最初のものは$FILE_AGE
Bash の変数であり、2 つ目は正規表現の一部であるためです。RegEx に関するすばらしいサイトを次に示します。