我确实在预先编写的Makefile目标中看到了某些语句,他们在这里调用shell来执行某些命令。以下是我困惑的语法。
[ -z "$(ENV_VAR)" ] || \
echo Building $(ENV_VAR); \
所以我在上述陈述中提出的问题是:
(1)这是一个检查环境变量是否存在的条件语句?
(2)-z选项意味着什么。
(3)据我所知“||”是一个逻辑运算符,它在这种用例中的表现如何。
答案 0 :(得分:2)
-z
:如果跟随字符串的长度为零长度cmd1 || cmd2
:cmd2
执行cmd1
如果cmd1
返回状态不等于零(即{{1}}失败)