1

これは、引数がBourneシェルスクリプトの整数であるかどうかをチェックします。

if [[ $3 =~ ^[0-9]+$ ]] && ((  $3 >= 1 ))

引数が整数でない(整数とアルファベットで構成できる)かどうかを確認するにはどうすればよいですか?それで、それは上記の補足に過ぎないと思いますが、それを変更する方法がわかりません。これらの記号の意味に関する情報はどこにありますか?:=〜^ + $&

4

1 に答える 1

3

ド・モルガンの法則を使用して、if 条件チェックを次のように否定できます。

if [[ ! $3 =~ ^[0-9]+$ ]] || ((  $3 < 1 ))
  • 中の!記号[[...]]は否定を意味します。
  • $3 < 1の否定です$3 >= 1

演算子を使用すると、=~if ステートメントで正規表現を使用できます。

ここ&&で使用されている は「論理積」を意味します

残りの記号^ + $正規表現用です。これは、この回答で提供できるよりも多くの読み物に値するトピックですが、要するに:

  • ^: 行頭に一致
  • +: 1 つ以上に一致します (このコンテキストでは、1 つ以上の数字に一致します)
  • $: 行末に一致
  • 一緒に、^[0-9]+$意味: 数字だけの文字列にのみ一致します。
于 2012-11-28T05:19:16.440 に答える