user1581900 user1581900 - 6 months ago 20
Bash Question

String comparison in bash. [[: not found

I am trying to compare strings in bash. I already found an answer on how to do it on stackoverflow. In script I am trying, I am using the code submitted by Adam in the mentioned question:

#!/bin/bash
string='My string';

if [[ "$string" == *My* ]]
then
echo "It's there!";
fi

needle='y s'
if [[ "$string" == *"$needle"* ]]; then
echo "haystack '$string' contains needle '$needle'"
fi


I also tried approach from ubuntuforums that you can find in 2nd post

if [[ $var =~ regexp ]]; then
#do something
fi


In both cases I receive error:

[[: not found


What am I doing wrong?

Answer

[[ is a bash-builtin. Your /bin/bash doesn't seem to be an actual bash.