互換性の理由から、bash スクリプトをダッシュに移動しています。次の比較に代わる POSIX/Dash はありますか?
COMPARE_TO="^(lp:~?|https?://|svn://|svn\+ssh://|bzr://|bzr\+ssh://|git://|ssh://)"
if [[ $COMPARE =~ $COMPARE_TO ]]; then
echo "WE ARE COMPARED!"
fi
互換性の理由から、bash スクリプトをダッシュに移動しています。次の比較に代わる POSIX/Dash はありますか?
COMPARE_TO="^(lp:~?|https?://|svn://|svn\+ssh://|bzr://|bzr\+ssh://|git://|ssh://)"
if [[ $COMPARE =~ $COMPARE_TO ]]; then
echo "WE ARE COMPARED!"
fi
ケースを使用できます。正規表現は使用しませんが、グロブではそれほど長くはありません
case $compare in
lp:*|http://*|https://*|svn://*|svn+ssh://*|bzr://*|bzr+ssh://*|git:/*|ssh://*)
echo "We are compared"
;;
esac
余談ですが、特殊なシェル変数や環境変数を上書きする危険性があるため、すべて大文字の変数名を使用しないでください。
ダッシュには正規表現の比較機能が組み込まれていませんが、いつでも grep を使用できます。
if echo "$compare" | egrep -q "$compare_to"; then
...
(シェルの大文字変数に関する@geirhaのメモを2番目に注意してください。)