私のコンピュータで古いスクリプトを見ている間、私はこのif
表現を見ましたが、それが何をしているのかわかりませんでした。誰かがこれを説明できますか?
if ! [[ "${count// /}" =~ ^[0-9]+$ ]]
then
echo 1
else
echo $count
fi
値はcount
文字列の場合もあり、整数の場合もあります。
ベストアンサー1
それをコンポーネントに分けましょう。
- この構文は、
"${count// /}"
変数の内容のすべてのスペースを空の文字列に置き換えるパラメータ拡張構文です。たとえば2 1
、21
- この部分は正規表現操作を
=~ ^[0-9]+$
実行し、bash
左の文字列を数値セットに一致させます。ただ。 - この部分は全体の操作を無効にします。つまり
! [[..]]
、count
いいえ一連の数字。 - 数値を出力して
if
失敗した場合は、1)のスペースを削除せずに実際の値を返します。echo
1
if
count