如果块在 false 上执行第二个命令

Rog*_*asy 0 linux bash

我是 bash 新手(冒充 Linux 系统管理员的 PHP 开发人员)。
我在 bash 脚本中有以下 if 块:

 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
Run Code Online (Sandbox Code Playgroud)

即使测试命令为假,printf 行也会执行。谁能告诉我为什么?

TIA

罗杰

Cri*_*ati 7

由于您没有运算符,并且操作数以空格分隔,因此解释器将整个项目假定为一个字符串,这与空字符串不同,并转到then分支。将您的条件修改为:

if [ "$DAY" == "Sunday" ];
Run Code Online (Sandbox Code Playgroud)

以获得预期的结果。是一个有用的帖子。