2016-09-02 9 views
1

私は2つの変数(PACKAGE_NAMEPACKAGE_LIST)を持っています。PACKAGE_LISTPACKAGE_NAMEが含まれているかどうかを確認しようとしています。ここでリストに特定の文字列が含まれているかどうかをチェック

は私が持っているものです。

PACKAGE_LIST="rpm-foo-bar:5.0.1" 
PACKAGE_NAME="rpm-foo" 

if [[ ${PACKAGE_LIST} =~ "${PACKAGE_NAME}" ]]; then 
    echo "PACKAGE_NAME is in PACKAGE_LIST" 
else 
    echo "PACKAGE_NAME is NOT in PACKAGE_LIST" 
fi 

私がいる問題はrpm-foorpm-foo-barに似ていながら、それは同じではないことであるとelse文に分類すべきである(PACKAGE_NAMEPACKAGE_LISTではありません)。文字列の比較に$を追加しようとしましたが、これはPACKAGE_LISTPACKAGE_NAMEで終わる場合にのみ機能します。代わりに、PACKAGE_LISTにバージョンが追加されています。小切手を「PACKAGE_NAMEPACKAGE_LISTにない」になるように、この小切手をよりスマートにするにはどうすればよいですか?

注:時々PACKAGE_LISTバージョンは含まれませんし、次のようになります。

PACKAGE_LIST="rpm-foo-bar" 

答えて

2

どの程度

[[ ${PACKAGE_LIST} =~ "${PACKAGE_NAME}:" || ${PACKAGE_LIST} == ${PACKAGE_NAME} ]] 
+0

PACKAGE_LISTはバージョンが含まれている場合に動作すること。私はそれが必ずしもそうではないことを含めるために質問を更新しました。 –

+0

私は私の答えを更新しました – redneb

+0

私はまたはを使用することについて考えていなかった。これは素晴らしいです。ありがとう! –

関連する問題