2

新しい構成が開始されたことを確認するには、ini ファイルを調べて、行が角かっこで始まっているかどうかを確認する必要があります。これをbashで確認する方法はありますか?私は試した

line="[test]"

if [[ "$line" =~ [.* ]]; then
    echo "Got it!"
else
    echo "Nothing found"
fi

しかし、それは私にはうまくいきません。ブラケットを何らかの形でエスケープする必要があると思いますが、その方法に関する情報が見つかりません。どんな助けでも大歓迎です。

4

2 に答える 2

5

これを行うには、特殊文字をバックスラッシュする必要がある[ため、次のようになります。

line='[test]'

if [[ $line =~ ^\[ ]]; then
    echo "Got it!"
else
    echo "Nothing found"
fi

説明

  • [のように、 REGEXクラスを開くための開始文字です。[0-9]
  • どこでも引用符が必要ですが、bash [[ ]]テスト内では必要ありません
于 2012-11-21T12:53:43.990 に答える
0

そのために正規表現を使用するのはひどいことです! bash代わりにグロブを使用してください:

if [[ $line = [* ]]; then
    echo 'Got it!'
else
    echo "Nothing found"
fi

bashこれがより効率的に使用するのに役立つことを願っています。

于 2012-11-21T17:29:26.943 に答える