Makefile中echo和@echo的区别

黑猫带你学Makefile第5篇:Makefile中函数的使用 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。... 阅读详情
AI摘要

本文详细解释了Shell环境下的echo命令的使用方法,包括其显示行为的两种模式:一种是在执行时显示命令及其输出,另一种仅显示命令的输出结果而不显示命令本身。通过具体示例,帮助读者理解如何在脚本中灵活运用echo命令。

echo:会在shell中显示echo这条命令和这条命令的输出结果

@echo:不会在shell中显示echo这条命令,但是会显示命令的输出结果

例如:

echo_test:
	echo "hello world"

echo_test_with_address:
	@echo "hello world"

echo_test的输出结果为:

echo_test_with_address的输出结果为:

YOLO11实战:手把手教你优化钢材表面缺陷识别模型(基于NEU-DET数据集) 本文详细介绍了如何使用YOLO11优化钢材表面缺陷识别模型,基于NEU-DET数据集进行实战训练。从数据增强、模型架构优化到训练过程控制,全面解析提升钢材缺陷检测性能的关键技术,特别针对裂纹、划痕等典型缺陷提出针对性解决方案。 阅读详情

相关推荐

【论文学习】《Fully-Convolutional Siamese Networks for Object Tracking》2016年SiamFC 全卷积孪生网络用于目标跟踪

在这项工作中,我们脱离了跟踪中采用的传统在线学习方法,并展示了一种专注于在离线阶段学习强嵌入的替代方法。与在分类设置中的使用不同,我们证明,对于跟踪应用,孪生全卷积深度网络能够更有效地使用可用数据。这不仅反映在测试时,通过执行有效的空间搜索,也反映在训练时,其中每个子窗口都有效地代表一个有用的样本,而几乎没有额外的成本。实验表明,深度嵌入为在线跟踪器提供了自然丰富的特征来源,并使简单的测试时策略表现良好。我们相信这种方法是对更复杂的在线跟踪方法的补充,并期望未来的工作能够更彻底地探索这种关系。

SkyLeopard的博客 2421

Makefile 中 echo 与 @ 符

@ 在 Makefile 中有时会看到 echo 命令前添加了 “@” 符号: @echo "hello" 它与不加 @ 符号的区别就是它不会把 “hello” 输出到终端(显示器)。 echo 明明就是用来输出内容的,那么 @ 是不是有点多余?这是因为有另一种需求存在,就是将 “hello” 输出到文件中(实际是需要写一个脚本文件)。 @echo "hello" &amp

chuanglan的专栏 6254

SAP OBYC自动过账全解析:从BSX到WRX的会计科目配置指南

本文深入解析SAP OBYC自动过账功能,从BSX到WRX的会计科目配置全流程,涵盖评估分组代码、事务码和评估类等核心概念。通过实战案例展示如何实现库存变动到财务过账的自动化流转,提升企业财务数据的准确性和效率。

weixin_29239279的博客 420

makefile学习7:echo的使用

类似于shell的echo的语句,echo可以在make执行时打印出自己预设的内容。 这个是内核源码根目录的makefile内容,>&2这个是将错误输出到文件描述为2的文件,其实是标准错误。 例子: gyz@debian:~/mc$ cat Makefile obj=test.o printarr.o test:$(obj) gcc -o test $(obj) $...

天泉证道 2万+

通过JLink下载实现工控MCU批量烧录实战案例

利用JLink下载工具实现高效稳定的工控MCU批量烧录,提升产线效率。案例详细解析了脚本配置与自动化流程,突出jlink下载的可靠性和可扩展性,适用于大规模嵌入式部署场景。

weixin_30205153的博客 814

webrtc获取IceCandidate流程

foundation:用于唯一标识候选者的基础信息,通常是基于候选者的类型、IP地址、协议和replay协议计算出的字符串。component:标识候选者所属的传输组件。对于RTP流,通常使用1;对于RTCP流,通常使用2。protocol:候选者使用的传输协议,通常是UDP,但也可以是TCP(尽管在WebRTC中UDP更为常见)。priority:候选者的优先级,用于在选择最佳候选对时进行比较。优先级的计算公式考虑了候选类型优先级、本地优先级和组件ID。address:候选者的IP地址。port。

qq_42805085的博客 1901

makefile详解

一、makefile概念作用:假如有三个C文件,比如说有foo.c, bar.c, main.c三个C文件,要编译成一个app,会怎么做呢?先将三个C文件都编译出来,然后再链接成一个可执行文件,但是当文件特别多的情况下,一个一个去编译,然后再去链接起来吗?这时可能会想创建一个shell文件,将上面的步骤放进去,写成一个build.sh,每次编译你只要执行这个脚本问题就解决了。

qq_40170041的博客 6106

夏令营纪实——东南大学计科院&PALM实验室面试全解析

本文详细解析了东南大学计科院与PALM实验室夏令营的面试全流程,包括前期准备、技术考察、项目经验深挖等关键环节。特别针对自然语言处理(NLP)和机器学习(ML)领域的高频问题提供应对策略,帮助申请者提升面试表现。文章还分享了实用的准备技巧和面试经验,为有意向参加该夏令营的学生提供宝贵参考。

convnet3designer的博客 459

20230424Makefile命令

make命令在执行时,会默认将所有的在终端上打印出来 "@“字符用于控制命令的输出,可以禁止当前命令打印到终端上,仅输出执行的结果(不影响命令本身的执行) 如果一个命令在前面加了”@“符号,那么该命令的执行结果不会显示在终端上 如果没有”@"符号,则该命令的执行结果会显示在终端上"echo"命令用于将一个文本字符串打印到标准输出,通常用于显示一个消息,以调试Makefile文件 这个例子将会打印以下内容 第一行echo "Hello,World!“为echo命令的打印 第二行Hello,World!为执行结

qq_51483729的博客 2426

基于STM32的PID恒温恒湿控制系统 | 保姆式教程 开源可复刻

本项目基于STM32F103C8T6核心控制器,完整实现了基于双路PID算法的恒温恒湿闭环控制系统,覆盖高精度温湿度采集、双模式控制、参数在线配置、异常安全保护、掉电记忆等全功能,全程采用无跳步保姆式教学,从硬件选型、接线、CubeMX配置、代码开发、调试排坑全流程拆解,跟着步骤一步步操作,就能顺利完成项目复刻

ZhongWeiXiang9的博客 346

45 - Android系统源码-crosvm 实战:基于 KVM 的 Rust 安全虚拟机监控器核心技术

摘要:crosvm 是 Google 开发的基于 KVM 的轻量级虚拟机监控器(VMM),采用 Rust 语言编写,专为 ChromeOS 和 Android 设计。其核心特点包括: 安全架构:通过 Rust 的内存安全特性和多进程隔离(每个设备运行在独立沙箱进程)大幅降低攻击面 性能优化:基于 KVM 的硬件虚拟化支持,结合异步 I/O (io_uring/epoll) 实现高效设备模拟 模块化设计:清晰的 trait 抽象层(Hypervisor/Vm/Vcpu)支持跨平台扩展 Android 集成

保持专注,保持热爱 226

Makefile 中 echo 和@echo的区别

Makefile 中 echo 和@echo的区别 echo: 会在shell中显示echo这条命令和后面要输出的内容 @echo: 不会显示echo这条命令,只会显示后面要输出的内容 例如: echo “hello” 输出为:echo “hello” hello @echo “hello” 输出为:hello make在执行命令之前会把要执行的命令进行输出,称之为回显 如果要执行的命令以字符@开始,则不会回显, 1.@echo XXX… 在执行命令时,将输出XXX… 2.echo XXX… 在执行命

weixin_47921928的博客 3083

电商数据采集实战——多平台价格监控、比价分析与智能告警系统

在电商竞争日益激烈的今天,价格监控与比价分析已成为品牌商、渠道商和消费者的核心需求。对于品牌商而言,需要监控各渠道售价是否低于指导价(破价监控);对于消费者而言,希望在最佳时机以最低价购入心仪商品;对于数据分析师而言,价格波动数据是洞察市场趋势的金矿。然而,电商数据采集面临三大核心挑战:本文将基于 Python + Scrapy + Playwright + Redis + ClickHouse 技术栈,构建一套完整的电商价格监控与比价系统。架构分层说明:电商平台的反爬手段层出不穷,采集系统必须具备多层次的

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 136

Makefile和shell的区别:echo和@echo

今天发现一个很基础,但我又确定的知识点,记录如下:         经常在Makefile的命令段发现@echo “print message”,和echo “print message”。         网上查了下是说echo加了@,命令会正常执行,但命令本身不回显(默认是显示命令到标准输出);未加@,则echo 后的命令体会执行也会回显。 1、 于是自己写了个shell脚本验证:  

imxiangzi的专栏 3万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Makefile中echo和@echo、>和>>的区别

echo和@echo的区别 make在执行命令之前会把要执行的命令进行输出,称之为回显 如果要执行的命令以字符@开始,则不会回显,例如: 1. @echo XXX 在执行命令时,将输出 XXX 2. echo XXX 在执行命令时,将输出 echo XXX XXX >和>>的区别 1. 执行echo时,如果用> 输出到文...

永远 3437

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

makefile 中 @echo 与 echo的区别

makefile 内容如下: help: echo "libs: build all libs" @echo "libs_clean clean all libs" 输入:make clean echo "libs: build all libs" libs: build all libs libs_clean clean all libs ...

weixin_40755306的博客 695

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

makefile常用的三个函数(wildcard notdir patsubst)

在嵌入式开发过程中,经常和Makefile打交道,今天总结下Makefile中最常用的三个函数:1、wildcard:扩展通配符函数经常可以看到这样的用法src=$(wildcard *.c),匹配所有.c文件,列表赋值给src2、notdir:去掉目标的路径函数经常可以看到这样用dir=$(notdir $(wildcard ./sub/*.c)),目的是去除掉./sub/...

weixin_34198881的博客 305

MakeFile常用函数

Makefile中foreach使用 foreach 函数和别的函数非常的不一样。因为这个函数是用来做循环用的,Makefile中的foreach函数几乎是仿照于Unix标准Shell (/bin/sh)中的for语句,或是C-Shell(/bin/csh)中的foreach语句而构建的。它的语法是: $(foreach <var>,<list>,<text>) 这个函数的意思是,把参数;中的单词逐一取出放到参数;所指定的变量中,然后再执行< text>;所

qq_43453926的博客 1674

Linux内核---7.Makefile学习笔记

Linux内核---7.Makefile学习笔记

wangcong02345的专栏 437

echo与@echo区别

有无@在echo前面这个要分情况来说明,如果是写在Makefile里面:@echo这样不会回写命令行,什么意思呢,就是直接显示echo输出的内容. 在上一篇介绍go Makefile时,有下面这样一段:.PHONY: clean test test: @echo "testing..." go test github.com/user/stringutil

JXES智能生态系统 2464

makefile中指令(tee/echo/>)

一、tee命令 功能是从标准输入读取,再写入标准输出和文件。 用法:tee [OPTION]... [FILE]...

none_hs的博客 1408

Makefile 入门教程

Makefile 定义了软件开发过程中,项目工程编译链、链接的方法和规则。由 IDE 自动生成或者开发者手动书写。Unix(MAC OS、Solaris)和Linux(Red Hat、Ubuntu、SUSE)系统下由 make 命令调用当前目录下的 Makefile 文件,实现项目工程的自动化编译。Windows 环境开发人员,可能并未听说过 Makefile,但是时时刻刻在使用 Makefile 来完成程序的编译,因为开发者并不需要手动编写 Makefile,而是通过 IDE 自动生成。

Doublelv 的博客专栏。 9157

makefile 杂项

echo $$PATH # $$被解析为$, 执行的shell 命令为 echo $path, 所以说环境变量的引用要用两个$@echo $PATH # $P 被认为是一个变量,解析成一个空,所以只显示ATH。# 在shell 命令中,用$$即可,$$被make解析为$# makefile 中使用环境变量。测试结果: make。........................

hjjdebug的专栏 576
上一篇: uboot配置编译
下一篇: uboot主Makefile分析
linuxweiyh
博客等级 码龄11年 171粉丝 152原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值