-3

シェル スクリプトに渡される変数が特定のパターンと一致することを確認する必要があります。var x は AA-XXXX (つまり AA-1.2.33) の形式でなければなりません。一致しない場合は、終了する必要があります。

何か案は?

4

3 に答える 3

1

Bash は正規表現を直接サポートしています。

if ! [[ $mystring ~= $pattern ]]; then
    exit
fi
于 2013-06-06T14:21:17.997 に答える
0

Bash の二重括弧正規表現テストを使用する

二項演算子の完全な説明については、GNU Bash マニュアルのConditional Constructsを参照してください。=~例として:

good_string='AA-1.2.33'
bad_string='BB.11.222.333'
regex='^AA-[[:digit:]]\.[[:digit:]]\.[[:digit:]][[:digit:]]$'

[[ "$good_string" =~ $regex ]]
echo $? # 0

[[ "$bad_string" =~ $regex ]]
echo $? # 1
于 2013-06-06T14:22:37.840 に答える
0

bashで直接実行可能

var=AA-1.2.33
[[ $var =~ ^AA-.\..\...$ ]]
echo $?
0
var=AA-1.2.3355
[[ $var =~ ^AA-.\..\...$ ]]
echo $?
1
于 2013-06-06T14:24:02.007 に答える