2012-05-01 13 views
0

私はちょっと混乱します:どのように正規表現がgrepをコマンドラインから使い、bash条件文でまったく同じ正規表現を使用するのでしょうか? 、それはまったく動作しませんか?正規表現はコマンドラインから一致し、bashスクリプトと一致しません

文字のみを含むすべての文字列と一致したいので、正規表現は ^[a-zA-Z]\+$です。

お手伝いしますか?

ここに私のbashコード

if ! [[ "$1" =~ '^[a-zA-z]+$' ]] ; then 
    echo "Error: illegal input string." >&2 
    exit 1 
fi 

答えて

2

からの抜粋は+をエスケープしないでくださいです。

は、これが私の作品:

$ [[ "Abc" =~ ^[a-zA-Z]+$ ]] && echo "it matches" 
$ it matches 

をまた、あなたは正規表現を単一引用符で囲む必要はありません。私にとっては、次の作品:

if ! [[ "$1" =~ ^[a-zA-z]+$ ]] ; then 
    echo "Error: illegal input string." >&2 
    exit 1 
fi 
+0

ここに私のプログラム '場合からの抜粋です! [["$ 1" =〜 '^ [a-zA-z] + $']]; \t echo "エラー:不正な入力文字列です。" >&2 \t exit 1 fi' – haunted85

+3

正規表現を囲む単一引用符を削除します。 – dogbane

+0

問題はまだ存在します。 – haunted85

関連する問題