首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >If语句Makefile tcsh

If语句Makefile tcsh
EN

Stack Overflow用户
提问于 2018-06-13 13:01:17
回答 1查看 348关注 0票数 0

我想要这样的东西:

代码语言:javascript
复制
my_rule:
       if($(VAR) == $@) then
             echo 'ok'
       else
             echo 'ko'
       endif

我必须使用tsch,但我知道Makefile使用 sh ,所以我真的想知道在这里是否必须使用sh或tcsh语句语法.?tsch脚本中if语句的正确语法是(我检查过):

代码语言:javascript
复制
#!/bin/csh

if(3 == 3) then
    echo 'yes'
else
    echo 'no'
endif

我试图将;\放在我的Makefile中,但是没有任何效果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-13 14:04:25

外壳是从变量SHELL中提取的,如果没有指定,默认为/bin/sh。假设您没有覆盖shell,那么您的语法将是:

代码语言:javascript
复制
my_rule:
       if [ "$(VAR)" == "$@" ]; then \
         echo 'ok'; \
       else \
         echo 'ko'; \
       fi

您需要使用\将这些行连接到一个菜谱行中。注意,这并没有引入实际的新行,因此您还必须使用一个;手动终止每个命令。最后,在变量周围放置引号,这样如果其中一个碰巧是空的,就不会出现语法错误。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50837966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档