Se o bloco executa o segundo comando em falso

0

Eu sou um novato do bash (um devedor do PHP posando como um administrador de sistema Linux).
Eu tenho o seguinte se bloquear em um script bash:

 if [ "$DAY"=="Sunday" ];
 then
 cp /Drive_D/videos_bu/daily/$TODAY /Drive_D/videos_bu/weekly/$WEEK
 printf "\n==========\nWeekly Backup - $TODAY SUCCESS!\n==========\n\n" >> $LOG
 fi

A linha printf é executada mesmo quando o comando de teste é falso. Alguém pode me dizer por quê?

TIA

Roger

    
por Roger Creasy 06.07.2016 / 16:14

1 resposta

7

Devido ao fato de você não ter o operador e operandos delimitados por espaços, o interpretador assume o item inteiro como uma cadeia, que é diferente da cadeia vazia, e vai para a ramificação then . Modifique sua condição para:

if [ "$DAY" == "Sunday" ];

para obter o resultado esperado. Aqui é um post útil.

    
por 06.07.2016 / 16:40

Tags