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

如何在makefile中编写'cd'命令?

在Makefile中,我们不能直接使用'cd'命令来切换目录。但是,我们可以使用make的内置函数$(MAKE)cd命令来实现类似的功能。下面是一个示例:

代码语言:makefile
复制
.PHONY: all
all:
	@echo "Building project in root directory"
	@$(MAKE) -C subdir1
	@$(MAKE) -C subdir2

在这个示例中,我们使用.PHONY来声明一个伪目标all,它会在当前目录下执行一些操作,然后切换到subdir1subdir2目录中,分别执行相应的操作。这里我们使用@符号来阻止make输出命令本身,只输出命令的执行结果。

需要注意的是,在使用$(MAKE)时,我们需要使用-C选项来指定要切换到的目录。这个选项的用法类似于cd命令,后面紧跟要切换到的目录路径。

总之,虽然我们不能直接在Makefile中使用'cd'命令,但是通过使用$(MAKE)-C选项,我们可以实现类似的功能来在不同的目录中执行相应的操作。

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

相关·内容

何在 Bash 编写函数

许多 bug 是由未更改的缺失的值或执行不正确的 sed 命令引起的,它们希望捕获所有可能而不必手动寻找。 在 Bash ,无论是在编写的脚本或在独立的文件,定义函数和使用它们一样简单。...如果将函数保存到独立的文件。那么可以将它 source 到脚本,就像 include C 语言或 C++ 的库或将模块 import 到 Python 中一样。...要创建一个 Bash 函数,请使用关键字 function: function foo { # code here } 这是一个如何在函数中使用参数的例子(有些人为设计,因此可能会更简单): #!...对于编写脚本的新手来说,这是一个普遍的困惑点:函数不会自动执行。它们作为潜在的例程存在,直到被调用。 如果没有调用该函数,那么函数只是被定义,并且永远不会运行。...你越适应函数,在面对一个不仅需要声明性的命令行,还需要更多动态的复杂问题时,你就会越容易。将通用函数保存在单独的文件还可以节省一些工作,因为它将帮助你建立常用的程序,以便你可以在项目间重用它们。

1.8K10
  • 何在Bash编写循环?

    如果要对许多文件执行某些操作,一种方法是构造一个遍历这些文件的命令来实现。在编程术语,这称为执行控制,最常见的示例之一是for循环。...经典的循环 Linux终端适用于Linux的7大终端仿真器用于Linux中进行数据分析的10个命令行工具立即下载:SSH备忘单高级Linux命令备忘单Linux命令行教程一个简单的循环是分析文件集合的循环...{png,jpg} example 将目录更改为新文件夹,然后列出其中的文件以确认测试环境符合您的期望: $ cd example $ ls -1 cat.jpg design_maori.png otago.jpg...在tcsh,语法本质上相似,但比Bash严格。在以下代码示例,是否不键入字符串foreach?在第2行和第3行。它是辅助提示,提醒您仍在构建循环的过程。...只需做一些练习,您就可以从一个Linux用户转移到知道如何编写循环的Linux用户! ——The End——

    2.4K10

    何在 Bash 编写函数

    许多 bug 是由未更改的缺失的值或执行不正确的 sed 命令引起的,它们希望捕获所有可能而不必手动寻找。 在 Bash ,无论是在编写的脚本或在独立的文件,定义函数和使用它们一样简单。...如果将函数保存到独立的文件。那么可以将它 source 到脚本,就像 include C 语言或 C++ 的库或将模块 import 到 Python 中一样。...要创建一个 Bash 函数,请使用关键字 function: function foo { # code here } 这是一个如何在函数中使用参数的例子(有些人为设计,因此可能会更简单): #!...对于编写脚本的新手来说,这是一个普遍的困惑点:函数不会自动执行。它们作为潜在的例程存在,直到被调用。 如果没有调用该函数,那么函数只是被定义,并且永远不会运行。...你越适应函数,在面对一个不仅需要声明性的命令行,还需要更多动态的复杂问题时,你就会越容易。将通用函数保存在单独的文件还可以节省一些工作,因为它将帮助你建立常用的程序,以便你可以在项目间重用它们。

    1.8K10

    让你“老”绅士般编写 Python 命令行工具的开源项目:docopt

    useage: 后的第一个词会被解释为程序的名称,比如下面就是一个没有命令行参数的示例程序: Usage: cli 接口描述可以包含很多有各种元素的模式,以描述命令行用法,比如: Usage: cli...只有在接口描述定义了对应选项才会被解释为一个带参数的选项。 2.3 命令 这里的命令也就是 argparse 嵌套解析器所要完成的事情,准确的说,对整个命令行程序来说,实现的是子命令。...在 docopt ,凡是不符合 --options 或 约定的词,均会被解释为子命令。...在下面这个例子,我们支持 create 和 delete 两个子命令,用来创建或删除指定路径。...在下篇文章,我们仍然会以 git 命令作为实战项目,看看如何使用 docopt 来实现 git 命令

    65730

    何在Linux安装netstat命令

    在本文中,我们将引导您逐步了解如何在不同的Linux发行版安装netstat命令 。 如何在Linux安装netstat命令 包含netstat的软件包称为net-tools 。...但是,在较旧的系统上,运行netstat命令可能会遇到错误。 因此,要在Linux发行版上安装netstat ,请运行命令。...# netstat -v 如何在Linux中使用netstat命令 您可以在任何Linux发行版上调用netstat命令以获取网络上的不同统计信息。...# netstat -ant 列出网络连接 4.显示网络服务 要列出服务,它们的当前状态以及相应的端口,请运行命令。...# netstat -pnltu 列出网络服务 在本文中,我们阐明了如何安装netstat命令以及如何使用它来检查各种网络统计信息。

    26.2K11

    在 Laravel 编写高级的 Artisan 命令

    在上一篇教程,学院君向大家介绍了什么是 Artisan 命令,系统内置的 Artisan 命令,以及如何编写一个简单的 Artisan 命令。...因此,在这篇教程,我们将更进一步,一起来看下如何编写更加高级的 Artisan 命令,比如带输入参数、选项,以及能够与用户互动,输出图表/进度条的 Artisan 命令。...在应用代码调用 Artisan 命令 除了在命令行运行 Artisan 命令之外,还可以在应用代码通过 Artisan 门面调用它。...你可以直接通过 Artisan:call() 调用指定命令,也可以通过 Artisan:queue() 将命令推送到队列执行。...你还可以在一个 Artisan 命令调用另一个 Artisan 命令,在命令调用 Artisan 命令,可以通过 Artisan:call(),也可以直接通过 this->call() 方法,还可以通过

    8.2K20

    何在小程序wxml文件编写js代码

    wxs可以说就是为了满足能在页面中使用js存在的,在wxml页面,只能在插值{{ }}写简单的js表达式,而不能调用方法,例如直接在wxml页面中直接保留数据的小数点的后两位。...通常的解决办法是在page的data对象先把这个数据截赋给某个变量,然后在页面中使用这个变量,但是问题又来了,如果变量多了呢,是不是要定义很多次。...total = a * b; total = total.toFixed(2);//保留两位小数 return total; } module.exports = { bar: bar}; 在wxml引用代码...结果 注意: wxs 不依赖于运行时的基础库版本,可以在所有版本的小程序运行。 wxs 与 javascript 是不同的语言,有自己的语法,并不和 javascript 一致。...wxs 的运行环境和其他 javascript 代码是隔离的,wxs 不能调用其他 javascript 文件定义的函数,也不能调用小程序提供的API。 wxs 函数不能作为组件的事件回调。

    3.9K30

    让你绅士般基于描述编写 Python 命令行工具的开源项目:docopt

    它能够根据命令行程序定义的接口描述,来自动生成解析器。...接口描述通常定义在一个模块的文档字符串,我们仍然以在 Python 命令行之旅:初探 argparse 的例子为例,讲解如何使用 docopt 来定义接口描述。...为 1 2 3,所以 arguments 为 ['1', '2', '3'] 3.3 业务逻辑 获得了解析后的命令行参数,我们就可以根据自己的业务需求做进一步处理了。...四、小节 docopt 的思路非常简单,就是定义接口描述,然后帮你解析命令行为参数字典,接下来就根据这个字典来编写业务逻辑。...重点就是在于如何定义接口描述,在下一篇文章,我们来深入了解下如何定义命令、选项、位置参数等接口描述。

    34720

    何在Ubuntu 16.04上使用Flask和Python 3编写Slash命令

    slash命令是在消息输入框执行操作的快捷方式。例如,键入/who列出当前频道的所有用户。 您可以创建自己的slash命令,Slack工作区的成员可以找到它们。...将命令安装到工作区并调用该命令时,可以指示Slack向您编写的程序发出请求。该程序从Slack接收信息并返回响应,该响应显示在Slack。您可以通过阅读API文档了解有关slash命令的更多信息。...在本教程,您将创建一个Slack命令/slash,该命令由在Ubuntu 16.04服务器上运行的Flask应用程序提供支持,并将此命令安装到Slack工作区。...第1步 - 创建和安装Slack App 在编写代码之前,我们将首先创建一个Slack应用程序,它为Slack提供附加功能,并将其安装在开发Slack工作区。...我们现在已经在开发Slack工作区创建并安装了一个Slack应用程序。但是在我们创建一个处理slash命令的Web应用程序之前,该命令将无法运行。

    3K40

    在 Linux 不使用 CD 命令进入目录文件夹的方法

    众所周知,如果没有 cd 命令,我们无法 Linux 中切换目录。这个没错,但我们有一个名为 shopt 的 Linux 内置命令能帮助我们解决这个问题。...这对 Linux 管理员没用,因为我们不会在没有 cd 命令的情况下切换到该目录,因为我们对此有经验。 如果你尝试在没有 cd 命令的情况下切换 Linux 的目录/文件夹,你将看到以下错误消息。...你可以在该文件添加要在命令提示符下输入的任何命令。 .bashrc 文件本身包含终端会话的一系列配置。包括设置和启用:着色、补全,shell 历史,命令别名等。...而且,它在 fish shell 工作正常,而无需对 .bashrc 进行任何更改。 ? 如果要暂时执行此操作,请使用以下命令(设置或取消设置)。重启系统时,它将消失。...Linux 不使用 CD 命令进入目录/文件夹的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

    6K21

    何在Python程序运行Unix命令

    我们可以使用许多有趣的Unix命令来执行不同的任务。 问题是,我们可以直接在Python程序中使用此类命令吗? 这就是我将在本教程向您展示的内容。 Unix命令ls列出目录的所有文件。...os.system() 解决此问题的一种方法是使用Python的os模块的os.system() 。 文档中所述, os.system() : 在子外壳程序执行命令(字符串)。...因此,我们可以在Python运行ls命令,如下所示: import os os.system('ls') 这将返回当前目录( .py程序所在的位置)的文件列表。 让我们再举一个例子。...如有关此功能的文档中所述: 运行args描述的命令。 等待命令完成,然后返回returncode属性。...结论 正如我们在本教程中看到的那样,可以使用subprocess模块来调用和执行Unix命令,当通过其不同功能使用Unix命令时,该模块提供了很大的灵活性。

    1.8K10

    你如何在 Python 编写自动售货机代码?

    在本文中,我们将学习用 Python 编写自动售货机代码。 带蟒蛇的自动售货机 每个物料的产品 ID、产品名称和产品成本属性将存储在字典。当前为空但稍后将填充所有选定项的列表。...       'itemCost': 300,    }, ] item = [] bill = """ \t\tPRODUCT -- COST """ sum = 0 run = True 打印菜单 编写一个简单直接的循环来打印自动售货机的菜单以及每个项目的必要属性...如果产品 id 小于字典items_data的总长度,则必须将整组 id 属性添加到项目列表;否则,将打印消息“错误的产品 ID”。...          perk -- 50                   Burger -- 200                   Total --- 250 结论 我们在本文中详细研究了如何在...Python 创建自动售货机程序以及主要逻辑的工作原理。

    1.7K30

    【DB笔试面试511】如何在Oracle写操作系统文件,写日志?

    题目部分 如何在Oracle写操作系统文件,写日志? 答案部分 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。...在CLIENT_INFO列存放程序的客户端信息;MODULE列存放主程序名,包的名称;ACTION列存放程序包的过程名。该包不仅提供了设置这些列值的过程,还提供了返回这些列值的过程。...如何在存储过程暂停指定时间? DBMS_LOCK包的SLEEP过程。例如:“DBMS_LOCK.SLEEP(5);”表示暂停5秒。 DBMS_OUTPUT提示缓冲区不够,怎么增加?...采用命令“DBMS_OUTPUT.ENABLE(20000);”,另外,如果DBMS_OUTPUT的信息不能显示,那么需要设置SET SERVEROUTPUT ON。...如何在Oracle写操作系统文件,写日志? 可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。

    28.8K30
    领券