O problema é a falta de espaço em branco.
O código a seguir funcionará em shells cujo comando [
builtin aceita ==
como um alias para =
:
if [ "$DAYOFWEEK" == 4 ]; then echo YES; else echo NO; fi
Mas lembre-se (consulte help test
in bash
):
-
==
não é oficialmente mencionado, você deve usar=
para comparação de strings -
-eq
é destinado a testes aritméticos decimais (não fará diferença aqui paradate +%u
, mas paradate +%d
, por exemplo, quando se trata de comparar04
e4
, que são numericamente iguais, mas lexicamente diferentes) .
Eu preferiria:
if [ "${DAYOFWEEK}" -eq 4 ]; then echo YES; else echo NO; fi
Geralmente você deve preferir a abordagem do dia número , porque tem menos dependência do locale .
No meu sistema, a saída de date +"%a"
é hoje Do
.