why on earth is your code so spaced out o.O
the most obvious failing is improper syntax of conditions. You see, in bash [x=y] is space dependent.
 conditions are not parsed like you would expect in other programming languages, in shells [ is simply a command and it gets a list of parameters just like any other (] is simply a closing marker). Obviously parameters have to be delimited with spaces
in other words it's "[" "$couchpotato" "=" "yes" "]"
Given that [ ] is an ordinary command you don't even have to use it with if if you feel like it
$ [ "a" = "a" ] && echo true || echo false
$ "[" "a" "=" "a" "]" && echo true || echo false
also always put $var in "". If the value is null or has whitespaces you get unexpected results
unquoted variable in [ $null = yes ] expands to nothing at all (not empty string) so the result is [ = yes ] which doesn't make sense
$ [ $x = "a" ] && echo true || echo false
bash: [: =: unary operator expected
[ "$x" = "a" ] && echo true || echo false