Bugfix: Old versions of bash do not have =~

Versions of bash before 3.0 do not have =~ syntax to match on a regex.
Changed to using a simple grep -c test instead.
Fixes issues with osx and Solaris 9 and before.
This commit is contained in:
Paul Mansfield
2010-02-23 23:05:03 +00:00
parent b6467eaa64
commit 6fc2d81919

View File

@@ -259,13 +259,10 @@ cleaninput()
# Replace newlines with spaces Always # Replace newlines with spaces Always
input=`echo $input | tr -d '\r|\n'` input=`echo $input | tr -d '\r|\n'`
# Storing regexp in variable fixes quoting difference between action_regexp="^\(append\|app\|prepend\|prep\|replace\)$"
# bash v3.1.x and v3.2.x see:
# http://stackoverflow.com/questions/218156/bash-regex-with-quotes
action_regexp='^(append|app|prepend|prep|replace)$'
# Check which action we are being used in as this affects what cleaning we do # Check which action we are being used in as this affects what cleaning we do
if [[ $action =~ $action_regexp ]]; then if [ `echo $action | grep -c $action_regexp` -eq 1 ]; then
# These actions use sed and & as the matched string so escape it # These actions use sed and & as the matched string so escape it
input=`echo $input | sed 's/\&/\\\&/g'` input=`echo $input | sed 's/\&/\\\&/g'`
fi fi