Issue
I have the following piece of Bash script:
function get_cms {
echo "input cms name"
read cms
cms=${cms,,}
if [ "$cms" != "wordpress" && "$cms" != "meganto" && "$cms" != "typo3" ]; then
get_cms
fi
}
But no matter what I input (correct and incorrect values), it never calls the function again, because I only want to allow 1 of those 3 inputs.
I have tried it with ||
, with [ var != value ] or [ var != value1 ] or [ var != value1 ]
, but nothing works.
Can someone point me in the right direction?
Solution
Instead of saying:
if [ "$cms" != "wordpress" && "$cms" != "meganto" && "$cms" != "typo3" ]; then
say:
if [[ "$cms" != "wordpress" && "$cms" != "meganto" && "$cms" != "typo3" ]]; then
You might also want to refer to Conditional Constructs.
Answered By - devnull