2016-09-08 5 views
1

バッシュを比較するときに一致しない場合バッシュ条件は、特定の文字列を比較する際の条件が一致しない場合、特定の文字列

一致する文字列:

Red Hat Enterprise Linux Server release 7.2 (Maipo) 

コード:

machineOSVersion="Red Hat Enterprise Linux Server release 7.2 (Maipo)" 

modifiedOSVersion="CentOS Linux release 7 OR Red Hat Enterprise Linux Server release 7.2 (Maipo)" 

if [[ ${machineOSVersion} = *"${modifiedOSVersion}"* ]]; then 

    echo -e "match" 

else 

    echo -e "doesn't match" 

fi 

予想される一致:

実際:一致しません

他の文字列と同じコードが使用できます。文字列内の(または)文字のためにこれは失敗ですか?誰かが私を助けてくださいできますか?

答えて

2

あなたは、可変マッチングを逆にしています。あなたはsuperset変数ではなくサブセット変数の周りで一致する*を使用する必要があります。

用途:

[[ $modifiedOSVersion == *"$machineOSVersion"* ]] && echo "matched" || echo "nope" 
3

あなたは後方比較して2つの変数を持っています。あなたは次のように条件を記述する必要があります。

if [[ ${modifiedOSVersion} = *"${machineOSVersion}"* ]]; then 

あなたはそのように考えることができ:${modifiedOSVersion} 2つの文字列の最大であるので、あなたはそれを一致させるために${machineOSVersion}にものを追加する必要があります。この追加のものは、2つの*によってここに表されます。

関連する問題