What about the shorter :
#!/bin/bash
[[ $1 == A ]] && echo "A" || echo "not A"
?
And a beginner version (identical logic) :
#!/bin/bash
if [[ $1 == A ]]; then
echo "A"
else
echo "not A"
fi
Like Scott said, you have a syntax error (missing space).
explanations
- I use boolean logic here.
[[ $1 == A ]]
is executed, and then if its true,echo "A"
is executed, and if it’s false,echo "not A"
is executed, See http://mywiki.wooledge.org/BashGuide/TestsAndConditionals [[
is a bash keyword similar to (but more powerful than) the[
command. See http://mywiki.wooledge.org/BashFAQ/031 and http://mywiki.wooledge.org/BashGuide/TestsAndConditionals Unless you’re writing for POSIX sh, I recommend[[
.