The simplest script:
#!/bin/bash
myarray=("abc" "bcd" "cde")
if ${myaaray[0]} = "abc" ;
then
echo "abc"
fi
I receive:
./a.sh: line 5: =: command not found
That's a typo. ${myaaray[0]} should be ${myarray[0]}. It's expanded as empty and then reads as
if = "abc"
to the shell, hence the error since there is no command named =.
Also, the semicolon is a useless null statement and can be removed. You only need it if you place the then on the same line:
if command; then
do_something
fi
Anyway, you also need to tell the shell you want a string comparison, usually with the test utility.
if test "${myarray[0]}" = "abc"; then
echo "abc"
fi
If you need to perform a set of tests on strings, maybe the case command is useful:
case "${myarray[0]}" in
(abc) echo "Start of the alphabet";;
(xyz) echo "End of the alphabet";;
(*) echo "Somewhere else";;
esac
[[ over [ aka test[[ is an alternative avoiding some of the idiosyncrasies of test.[[ has some clear benefits in error handling and freedom from legacy behaviors from the Bourne shell. But sure, just commenting.