rubixibuc está certo, espaços são necessários. Você pode testá-lo com:
if [ "'whoami'" == "root" ]; then echo "To err is human...to really foul up requires the root password"; else echo "not telling any jokes"; fi
Eu não consigo entender como "testar" os operadores condicionais [[e [. Eu tentei usar várias formas, como
echo [[a=a]]
[[a=a]]
echo $?
e algumas outras coisas
Eu quero ver o que eles retornam, para testar algumas comparações. Como você os expande ou os executa?
Eu não pretendia postar uma resposta imediatamente, mas resolvi isso depois de pensar mais sobre isso. É necessário um espaço entre o [[ou [e o próximo token.
aqui está como você testaria isso.
[[ a = a ]]
ou
[ a = a ]
então
echo $?
Tags bash shell control-flow