首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Makefile中创建多行回显块

在Makefile中创建多行回显块可以通过使用echo命令结合shell的 Here Document(也称为 heredoc)语法来实现。Here Document允许你将多行文本作为输入传递给命令,这在需要执行多行命令或者输出多行信息时非常有用。

以下是一个在Makefile中创建多行回显块的例子:

代码语言:txt
复制
.PHONY: echo_block

echo_block:
    @echo "Creating a multiline echo block:"
    @(
        echo "This is the first line."
        echo "This is the second line."
        echo "This is the third line."
    )

在这个例子中,.PHONY声明了echo_block是一个伪目标,这意味着它不是一个文件名,而是一个动作的名字。当你运行make echo_block时,它会执行echo_block目标下的命令。

@符号用于抑制命令的回显,即不会在终端中显示命令本身,只显示命令的输出。

括号()用于创建一个子shell环境,这样在括号内的命令会在一个新的shell进程中执行。这对于需要独立环境的命令序列很有用。

Here Document的语法通常是将文本块放在命令的标准输入中,但是在上面的例子中,我们使用了多行的echo命令来实现回显块的效果。

如果你想要使用Here Document的方式,可以这样写:

代码语言:txt
复制
.PHONY: echo_block

echo_block:
    @echo "Creating a multiline echo block:"
    @cat << EOF
This is the first line.
This is the second line.
This is the third line.
EOF

在这个例子中,cat << EOF开始了一个Here Document,EOF是结束标记。所有在EOF之间的文本都会被当作输入传递给cat命令,然后cat命令会将这些文本输出到标准输出。

这两种方法都可以在Makefile中创建多行回显块,你可以根据实际情况选择使用哪一种。

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 技术栈系列基础篇2-Makefile

    Makefile有自己的书写格式、关键字、函数。像C 语言有自己的格式、关键字和函数一样。而且Makefile可以使用系统shell所提供的任何命令来完成想要的工作。...Makefile我们要定义一系列的变量,变量一般都是字符串,这个有点你C语言中的宏,当Makefile被执行时,其中的变量都会被扩展到相应的引用位置上。文件指示。...其包括了三个部分,一个是一个Makefile引用另一个Makefile,就像C语言中的include一样;另一个是指根据某些情况指定Makefile的有效部分,就像C语言中的预编译#if一样;还有就是定义一个多行的命令...变量的变量定义变量的值时,我们可以使用其它变量来构造变量的值,Makefile中有两种方式来在用变量定义变量的值。... Makefile 表达式中使用逗号和空格变量逗号和空格是 Makefile 表达式的特殊符号参考文档:https://juejin.cn/post/6844904001872330760#heading

    57430

    什么是makefile(3)

    Makefile里主要包含了五个东西:式规则、隐晦规则、变量定义、文件指示和注释。 1、式规则。式规则说明了,如何生成一个或多的的目标文件。...Makefile我们要定义一系列的变量,变量一般都是字符串,这个有点你C语言中的宏,当Makefile被执行时,其中的变量都会被扩展到相应的引用位置上。 4、文件指示。...其包括了三个部分,一个是一个Makefile引用另一个Makefile,就像C语言中的include一样;另一个是指根据某些情况指定Makefile的有效部分,就像C语言中的预编译#if一样;还有就是定义一个多行的命令...如果你要在你的Makefile中使用“#”字符,可以用反斜框进行转义,如:“\#”。 最后,还值得一提的是,Makefile的命令,必须要以[Tab]键开始。...这个变量的值是其它的Makefile,用空格分隔。只是,它和include不同的是,从这个环境变引入的Makefile的“目标”不会起作用,如果环境变量定义的文件发现错误,make也会不理。

    56520

    Makefile教程

    3.Makefile内容 Makefile里主要包含了五个东西:式规则、隐晦规则、变量定义、文件指示和注释。 1.式规则。式规则说明了,如何生成一个或多个的目标文件。...其包括了三个部分,一个是一个Makefile引用另一个Makefile,就像C语言中的include一样;另一个是指根据某些情况指定Makefile的有效部分,就像C语言中的预编译#if一样;还有就是定义一个多行的命令...如果你要在你的Makefile中使用“#”字符,可以用反斜框进行转义,如:“#”。 如果想多行注释的话,注释行的结尾加行反斜线(\),下一行也被注释,这样就是可以实现多行注释了。...很显然,Makefile的这多行注释的方法没有像C/C++的多行注释方法/*注释*/方便。...因此,多行的shell需要在Makefile使用反斜杠”\”连接为一行。此时,shell脚本的一条语句后需要添加分号分隔。

    4K53

    【Linux笔记】make工程管理工具(二)

    Makefile文件主要包含5个方面内容:显示规则、隐式规则、变量、文件指示、注释、实目标与伪目标等。 (1)式规则。式规则说明了,如何生成一个或多的的目标文件。...如果Makefile 文件里面没有式给出文件的依赖关系的时候,make 就会根据文件的扩展名找到相应的隐含规则,然后按照隐含规则来更新目标。... Makefile 我们要定义一系列的变量,变量一般都是字符串,这个有点像 C 语言中的宏,当 Makefile 被执行时,其中的变量都会被扩展到相应的引用位置上。如: ?...其包括了三个部分,一个是一个 Makefile 引用另一个 Makefile,就像 C 语言中的 include 一样;另一个是指根据某些情况指定 Makefile 的有效部分,就像 C 语言中的预编译...#if 一样;还有就是定义一个多行的命令。

    1.7K10

    芯片开发最常用的Makefile语法和功能

    软件或者芯片的开发,一般都会用到Makefile,它是一个文本文件,其中包含有关如何编译和链接程序的指令。..." 对于echo指令,如果只想看执行结果,而不想看的结果,可以使用@echo: hello: @echo "Hello, World" 如果command前面是空格,那么执行后会提示: ***...行首行尾的空格 Makefile ,行尾的空格不会被去除,而行首的空格则会被忽略。...为了解决这个问题,你可以利用 $(nullstring) 这一特殊变量来确保正确创建含有单个空格的变量。 (nullstring) 是 Makefile 的一个内置变量,其值为空字符串。...这是因为$i命令被make翻译成了shell的i,而此时shell的i的值就是one two three. 通配符 Makefile,*和%是都属于通配符。下面来看下他们的用法。

    14810

    【Linux操作系统】自动化编译make和Makefile

    通过make工具解释makefile文件的命令,进行我们的项目编译。 2.为什么要有make/makefile?...makefile的[tab键]不可省略,更不可用空格代替,[tab键]不等于4个空格也不等于8个空格,1个tab键实际是4个字符,只不过代表的是4个字符. 2.举一个例子 Makefile文件如下:....PHONY:clean clean: @rm -rf test @: 不带@命令行执行...make的时候,会将所执行的命令到终端,带@则不回 为什么命令行执行的时候,执行第一组依赖关系和依赖方法的命令是make,执行第二组依赖关系和依赖方法的命令却是make clean?...li li 74 Jan 7 18:48 test.c 2.touch的两个作用 我们知道touch命令可以创建一个文件,还有一个作用就是对现有文件更新这三个的时间为系统时间.

    84440

    Make

    以#开头的行为注释行,makefile若用到#,可用#;同样,$应该用$$。依赖列表后加上分号后,可直接跟上命令。...2、Makefile文件的构成: 一个完整的makefile文件由5个部分构成:式规则、隐含规则、变量、文件指示和注释。 式规则:一条式规则指名了目标文件、目标文件的依赖关系、命令。...文件指示:包括三个部分,一个类似于c语言中的include语句,可以将另一个makefile文件包含进来;二是根据情况指定makefile的有效部分,就像c语言中的预编译#if一样;三是定义一个多行的命令.../headers表示../headers目录下搜索所有.h结尾的头文件。 变量: makefile通常可定义变量,make执行时会把变量名出现的地方用变量值代替。...=:在此之前没有给该变量赋值才会给该变量赋值 +=:追加变量值,与原变量值之间用空格隔开 预定义变量: makefile 预定义了许多变量,隐含规则通常会用到这些变量: 宏名 初始值

    2K100

    makefile

    2、Makefile的基本内容 Makefile一般包括包含:式规则、变量定义、隐含规则、文件指示和注释等五个内容。 (1)式规则:式规则说明如何生成一个或多个的目标文件。...(2)变量定义:Makefile可以定义一系列的变量,变量一般都是字符串,当Makefile被执行时,变量的值会被扩展到相应的引用位置上。...(4)文件指示:其包括了三个部分,一个是一个Makefile引用另一个Makefile,就像C语言中的include一样;另一个是指根据某些情况指定Makefile的有效部分,就像C语言中的预编译...#if一样;还有就是定义一个多行的命令。...2.1 Makefile的变量 (1)Makefile定义的变量,与C/C++语言中的宏一样,代表一个文本字串,Makefile被执行时候变量会自动地展开在所使用的地方。

    2K00

    深度刨析makefile

    [] 传值,这一我的 Linux 专栏《深入浅出 GDB 调试器》一文中有详细介绍。...(2)命令 make 执行命令的时候会把命令打印到标准输入输出设备,如果命令前加一个 @ 则不会打印。...② -s 和 –silent 参数 关闭 make 执行时所有的执行命令的,相当于所有的命令行都使用 @ 开头,命令非常多的时候,要比 @ 更方便。...可以看到,加了这两个参数后,make 只会执行 makefile 的 shell 命令,但是不会命令,即便不加 @ 也不会。 make 的更多参数可以通过 man 去查看。...(3)命令打包 通过 define 和 endef 可以定义一个命令包,来把一连串的命令打包在一起,执行的时候,会把命令包的命令一执行。命令包的使用方法和变量一样,也需要 $ 符来说明。

    9910

    移植speexdsp到OpenHarmony标准系统②

    ②动态库程序编译时并不会被连接到目标代码,而是程序运行是才被载入,因此程序运行时还需要动态库存在。...Makefile里主要包含了五个东西:式规则、隐晦规则、变量定义、文件指示和注释。式规则。式规则说明了如何生成一个或多个目标文件。...Makefile我们要定义一系列的变量,变量一般都是字符串,这个有点像你C语言中的宏,当Makefile被执行时,其中的变量都会被扩展到相应的引用位置上。文件指示。...其包括了三个部分,一个是一个Makefile引用另一个Makefile,就像C语言中的include一样;另一个是指根据某些情况指定Makefile的有效部分,就像C语言中的预编译#if一样;还有就是定义一个多行的命令...笔者speexdsp根目录下的makefile(最基本的Makefile)文件搜索关键字CFLAGS找到CFLAGS = -g -O2 -fvisibility=hidden这条语句分析“make”

    6320

    跟我一起写Makefile:MakeFile介绍

    这样的方法非常有用,我们可以一个makefile定义不用的编译或是和编译无关的命令,比如程序的打包,程序的备份,等等。 make是如何工作的 默认的方式下,也就是我们只输入make命令。...所以,为了makefile的易维护,makefile我们可以使用变量。makefile的变量也就是一个字符串,理解成C语言中的宏可能会更好。...Makefile里主要包含了五个东西:式规则、隐晦规则、变量定义、文件指示和注释。 式规则。式规则说明了,如何生成一个或多个目标文件。...其包括了三个部分,一个是一个Makefile引用另一个Makefile,就像C语言中的include一样;另一个是指根据某些情况指定Makefile的有效部分,就像C语言中的预编译#if一样;还有就是定义一个多行的命令...为所有的目标文件创建依赖关系链。 根据依赖关系,决定哪些目标要重新生成。 执行生成命令。 1-5步为第一个阶段,6-7为第二个阶段。

    99420

    跟我一起写Makefile

    这样的方法非常有用,我们可以一个makefile定义不用的编译或是和编译无关的命令,比如程序的打包,程序的备份,等等。 make是如何工作的 默认的方式下,也就是我们只输入make命令。...所以,为了makefile的易维护,makefile我们可以使用变量。makefile的变量也就是一个字符串,理解成C语言中的宏可能会更好。...Makefile里主要包含了五个东西:式规则、隐晦规则、变量定义、文件指示和注释。 式规则。式规则说明了,如何生成一个或多个目标文件。...其包括了三个部分,一个是一个Makefile引用另一个Makefile,就像C语言中的include一样;另一个是指根据某些情况指定Makefile的有效部分,就像C语言中的预编译#if一样;还有就是定义一个多行的命令...为所有的目标文件创建依赖关系链。 根据依赖关系,决定哪些目标要重新生成。 执行生成命令。 1-5步为第一个阶段,6-7为第二个阶段。

    1K70

    Java虚拟机--对象的建立你的对象如何创建

    你的对象如何创建? Java是一门面向对象的编程语言,Java程序,我们做的最多一件事,就是new对象,程序运行过程,无时无刻都有对象被创建出来。...实际开发过程,有很多行为可以引起对象的创建,最直接最常用的就是使用new关键字来进行创建,这种方式Java规范中被称为:由执行类实例创建表达式而引起的对象创建。...指针碰撞:Java虚拟机堆内存规整,所有使用过的内存放在一,未使用的放在另一则两者之间使用指针作为分界点,当实际分配内存时候就移动该指针的位置,把指针向空闲的区域移动一段,移动的距离与所创建对象的大小相等...在对象内存分配完毕后,虚拟机将此内存区域置为零值,零值是什么,看类加载阶段的“准备”。这一步的目的是为了保证对象实例可以不被赋值即可使用。...image 输出结果: 父类静态代码,20 子类静态代码,10 2 0 2 从测试结果来回顾上面所说的内容,类初始化阶段,就会执行类的静态部分,也就是类构造器;在后面的对象初始化,首先对父类的实例变量赋值

    1.2K60

    Java 9 ← 2017,2019 → Java 13 ,来看看Java两年来的变化

    集合工厂方法:List,Set 和 Map 接口中,新的静态工厂方法可以创建这些集合的不可变实例。 私有接口方法:接口中使用private私有方法。...ThreadLocal握手机制(Thread-Local Handshakes):不进入到全局 JVM 安全点 (Safepoint) 的情况下,对线程执行调。...引入了yield语句,用于返回值。...将文本添加到 Java 语言(Text Blocks):引入多行字符串文字,在其中可以放置多行的字符串,不需要进行任何转义。 哪些特性改变你写代码的方式?...text block,文本,是一个多行字符串文字,它避免了对大多数转义序列的需要,以可预测的方式自动格式化字符串,并在需要时让开发人员控制格式。

    75120
    领券