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

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

我是一名 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

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

短暂性脑缺血发作

罗杰

答案1

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

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

以获得预期的结果。这里'一篇有用的帖子。

相关内容