Shell Makefile 中的符号

brpc组件bvar源码解析(一)简介、使用和类的关系 bvar是brpc中的一个重要组件,brpc内部有很多builtin监控都是bvar实现的。 brpc文档介绍bvar“几乎不会给程序增加性能开销,也快于竞争频繁的原子操作”。它的原理是:多线程累加一个计数器时,每个线程只累加私有的变量而不参与全局竞争,因此写时没有锁的竞争;在读取时累加所有线程的私有变量。虽然读比之前慢多了,但写就快多了,因此它使用写多读少的场景,例如统计、监控场景。 1.使用 // bvar::Adder<T>用于累加,下面定义了一个统计read error总数的Adder。 阅读详情
hell脚本中一些特殊符号
1、{} 大括号:
用法一:通配符扩展
代码: 
ls my_{finger,toe}s
这条命令相当于如下命令的组合:
代码: 
ls my_fingers my_toes
mkdir {userA,userB,userC}-{home,bin,data}
我们将得到 userA-home, userA-bin, userA-data, userB-home, userB-bin,userB-data,userC-home, userC-bin, userC-data,这几个目录
用法二:可用于语句块的构造,语句之间用回车隔开。如果你想在某些使用单个语句的地方(比如在AND或OR列表中)使用多条语句,你可以把它们括在花括号{}中来构造一个语句块。
代码: 
grep -v "$cdcatnum" $strack_file > $temp_file
cat $temp_file > $strack_file
echo
cat -n file1
(注:以上大括号中的四句命令够成了一个语句块)
用法三:参数扩展
代码: 
${name:-default} 使用一个默认值(一般是空值)来代替那些空的或者没有赋值的变量name;
${name:=default}使用指定值来代替空的或者没有赋值的变量name;
${name:?message}如果变量为空或者未赋值,那么就会显示出错误信息并中止脚本的执行同时返回退出码1。
${#name} 给出name的长度
${name%word} 从name的尾部开始删除与word匹配的最小部分,然后返回剩余部分
${name%%word} 从name的尾部开始删除与word匹配的最长部分,然后返回剩余部分
${name#word} 从name的头部开始删除与word匹配的最小部分,然后返回剩余部分
${name##word} 从name的头部开始删除与word匹配的最长部分,然后返回剩余部分
(注,name为变量名,word为要匹配的字符串)
用法三在处理字符串和未知变量时,是很有用的。
2、[] 中括号: 
用法一:通配符扩展:
允许匹配方括号中任何一个单个字符
代码: 
ls /[eh][to][cm]*
相当于执行 ls /etc /home(若有/eom目录,就相当于会执行ls /etc /home /eom)
注:在mkdir命令下不能扩展
用法二:用于条件判断符号:
[]符号可理解为指向test命令的一个软链接,所以其用法可完全参照test,将test位置替换为[便可。
代码: 
if [ "$?" != 0 ] 等价于 if test "$?" != 0
then echo "Executes error"

3、`command` 反引号:
`command`与$(command)的含义相同,都是返回当前执行命令的结果
代码: 
#!/bin/sh
for file in $(ls f*.sh);do
    lpr $file
done
exit 0
该例实现了扩展f*.sh给出所有匹配模式的文件的名字。
4、'string' 单引号 和 "string" 双引号 
双引号:如果想在定义的变量中加入空格,就必须使用单引号或双引号,
单、双引号的区别在于双引号转义特殊字符而单引号不转义特殊字符
代码: 
$ heyyou=home
$ echo '$heyyou'
$ $heyyou ($没有转义)
eg: $ heyyou=home
$ echo "$heyyou"
$ home (很明显,$转义了输出了heyyou变量的值)

5、$# 它的作用是告诉你引用变量的总数量是多少;
代码: 
$$ 它的作用是告诉你shell脚本的进程号;
$* 以一个单字符串显示所有的脚本传递的参数。等价于$1 $2 $3.......;
$@ 与$*基本类似(参见序号7),但在数组赋值时有些不同;
$? 前一个命令的退出码;
$- 显示shell使用的当前选项;
$! 最后一个后台运行的进程ID号。

6、$((...))语法:对括号内的表达式求值
代码: 
#!/bin/sh
x=0
hile [ "$x" -ne 10 ];do
echo $x
x=$(($x+1))
done
exit 0

7、shell中几种特殊的参数变量的引用
代码: 
$1、$2、$3……${10}、${11}、${12}…… :表示脚本传入的的各个参数,注意当需表示两位数以后的参数时数字要用花括号括起。
$@ 列出所有的参数,各参数用空格隔开
$*: 列出所有的参数,各参数用环境变量IFS的第一个字符隔开

8、命令列表: 
AND列表 statement1 && statement2 && statement3 && …:只有在前面所有的命令都执行成功的情况下才执行后一条命令
OR列表 statement1 || statement2 || statement3 || …:允许执行一系列命令直到有一条命令成功为止,其后所有命令将不再被执行
#!/bin/sh
代码: 
touch file_one
rm -f file_two
if [ -f file_one ] && echo "hello" && [ -f file_two ] && echo " there"
then
echo "in if"
else
echo "in else"
fi
exit 0
上例的输出为:
代码: 
hello
in else
关于AND列表与OR列表,在逻辑判断中很使用,下面就举一个其最常用的例子:
代码: 
[ condition ] && command for true || command for false:
当条件为真时,执行commandfor true ,当条件为假时,执行command for false
9、: 冒号:内建空指令,返回值为0
代码: 
$ :
$ echo $?
$ 0
while: (该语句结构可实现一个无限循环)

10、; 分号: 在 shell 中,担任"连续指令"功能的符号就是"分号"
代码: 
cd ~/backup ; mkdir startup ; cp ~/.* startup/.

11、# 井号:表示符号后面的是注解文字,不会被执行;
代码: 
* 匹配文件名中的任何字符,包括字符串;
? 匹配文件名中的任何单个字符。
~ 代表使用者的 home 目录

12、/ 倒斜线:
放在指令前,有取消 aliases(别名) 的作用;
放在特殊符号前,则该特殊符号的作用消失;
放在指令的最末端,表示指令连接下一行(使得回车符无效,只起换行作用)
13、! 感叹号:
通常它代表反逻辑的作用,譬如条件侦测中,用 != 来代表"不等于"
14、** 次方运算:两个星号在运算时代表 "次方" 的意思
代码: 
let "sus=2**3"
echo "sus = $sus"
$ sus = 8 -

====
http://blog.youkuaiyun.com/linphusen/article/details/6557471
一键生成Microsoft Store应用直链下载:绕过商店故障的终极方案 遇到商店无法加载时,复制链接 → 粘贴到Adguard → 下载主程序包 → 开启开发者模式安装。整个过程耗时不超过2分钟,彻底摆脱商店依赖! 阅读详情

相关推荐

从零到一:Ollama工具在RK3588上的深度优化实践

本文详细介绍了如何在RK3588开发板上深度优化Ollama工具,以高效运行DeepSeek模型。通过CPU与NPU负载平衡、模型量化、温度控制等策略,显著提升性能并降低功耗,适用于边缘计算场景。文章提供了具体的配置命令和优化方案,帮助开发者充分发挥RK3588的硬件潜力。

rgv23456789的博客 311

makefile - 反引号、单引号双引号、dirname、wildcard

1 反引号、单引号、双引号的区别 `反引号: `date`  等同于  $(date) 在Linux中反引号起着命令替换的作用;将反引号中的字符串做为命令来执行; 如下,shell会执行反引号中的date命令,把结果插入到echo命令显示的内容中。 > echo The date is `date` the date is 2015

linux嵌入式 - 虚拟机 主机Ping不通,即虚拟机不可上网问题解决方法 6509

基于Matlab-Simulink的大林算法控制系统设计与振铃消除实验

本文详细介绍了基于Matlab-Simulink的大林算法控制系统设计与振铃消除实验。通过分析纯滞后系统的控制难题,探讨大林算法在工业控制中的应用优势,并提供Matlab-Simulink环境搭建、控制器D(z)设计、振铃消除及仿真实验的完整流程。文章还对比了大林算法与PID控制的性能差异,为工程实践提供参考。

dropout6artist的博客 795

shell脚本中一些特殊符号

1、{} 大括号: 用法一:通配符扩展 eg: ls my_{finger,toe}s 这条命令相当于如下命令的组合: ls my_fingers my_toes eg: mkdir {userA,userB,userC}-{home,bin,data} 我们将得到

技术资料库 1896

利用 IP 中的集成调试功能来调试 PCI Express 链接训练问题

JTAG Debugger”和“In-system IBERT”功能结合在一起即可提供即时信息,用于判断链接训练问题的可能原因。“test_rd.tcl”文件可读取 BRAM 中存储的调试数据,并输出 *.dat 文件,如下所示。同样,您可能看到某一箭头旁的数字较大,表明可能存在不稳定的链接。要采集 PCIe 链接眼图,请在 IP 配置 GUI 的“Add. Debug Options”选项卡中选择“启用 In-System IBERT (Enable In-System IBERT)”选项。

qq_43416206的博客 534

C#跨平台制图新纪元:Mapsui,一库在手,地图我有

深入学习Mapsui的渲染机制,定制属于你的地图样式,无论是颜色、图标还是文字,都可以随心所欲。

java专栏 1455

makefile学习使用记录

1)= := ?= +=的区别 :=直接赋值 ?=上文没有赋值则赋值,有则不赋值 +=追加赋值 ARCH ?= CROSS_COMPILE ?= CC := $(CROSS_COMPILE)gcc AR := $(CROSS_COMPILE)ar 2)反引号用于执行shell命令,例 LIBLORAGW_VERSION := `cat ../VERSION` 3)总Makefile调用子Makefile, -e 用于覆盖子Makefile变量,-C 指定子目录路径,例 all: libto

zterrorblade的博客 221

华为OD新系统机试真题 - API请求日志去重分析

华为OD新系统机试真题【API请求日志去重分析】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD4月15号机试真题【API请求日志去重分析】

qq_45776114的博客 915

makefile 规则

内存管理第一谈:段式管理和页式管理 https://blog.youkuaiyun.com/jy1075518049/article/details/43610569 LINUX 逻辑地址、线性地址、虚拟地址和物理地址 https://blog.youkuaiyun.com/baidu_35679960/article/details/80463445 万能makefile写法详解,一步一步写一个实用的makefile,详解 sed 's,$∗\.o[ :]*,\1.o $@ : ,g' < $@. https://b

happylzs2008的专栏 387

NVIDIA Isaac Sim 入门教程(一)

文档分为以下几个部分: 简介、安装指南、API 文档、教程、手册和参考资料。简介部分是对 Omniverse Isaac Sim 的基本概述,以及它如何融入 NVIDIA Omniverse™ 生态系统。它还概述了 Omniverse Isaac Sim 的架构、工作流程和文档布局。

机器人控制与仿真应用 1万+

【Agent实战】Agent Skills 深度解析:从原理到落地的完整指南

本文深入解析了Agent Skills的概念及其在AI协作中的实际应用。Skill是一种可被AI按需发现和加载的任务执行说明书,它将团队经验、规则和步骤固化为结构化文档,如SKILL.md。文章阐明了Skill与Prompt、MCP、Function Calling的关系,强调Skill专注于"怎么做"而非底层能力。重点介绍了SKILL.md的编写规范,包括元数据命名规则、描述技巧和正文内容优化,旨在帮助开发者高效构建可复用的知识资产,提升Agent的任务执行稳定性与专业性。通过清晰的示例和对比,为AI架构

少说,多做 115

Makefile详解 书写命令

<br />书写命令<br /> ————<br /><br /> 每条规则中的命令和操作系统Shell的命令行是一致的。make会一按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧 跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略,但是如果该空格或空行是以Tab键开头的,那么make会认为其是一个空命令。<br /><br /> 我们在UNIX下可能会使用不同的Shell,但是make的命令默认是被“/bin/sh”——UNIX的标准Shell解释执行的

elfylin的专栏 744

基于simulink的AI融合与深度学习控制的场景实例:基于强化学习的电动汽车能量管理策略优化仿真

本文介绍了基于强化学习的电动汽车能量管理策略优化仿真方法。通过Simulink构建包含驾驶循环输入、电池子系统、电机驱动系统和强化学习控制器的仿真模型,采用DQN等算法训练智能代理,设计奖励函数优化能量分配。详细说明了建模步骤和参数设置,包括环境定义、代理训练和性能评估指标。该方法能有效提升电动汽车的续航里程、电池寿命和能源利用效率,为智能能量管理系统设计提供参考。

xiaoheshang_123的博客 154

Makefile实例与shell脚本符号区别

cat Makefile # Automatically generated by /home/exapp/zengzhihao/amlogic/buildroot-openlinux-20170814/buildroot/support/scripts/mkmakefile: don't edit #lastword既可作为变量也可作为函数,作为变量调用时需要传入1="xxx yyy" las...

bewinged 749

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

shell与makefile学习笔记

shell makefile % 一般在${}用作字符串处理 表示任意字符,如%.C表示所有的C文件 $@ 传递给脚本或函数的所有参数 表示规则中的目标文件集 $* 传递给脚本或函数的所有参数,与$@不同的是,当被“”引住时,所有参数成为不可分的整体 表示目标模式中 % 及其之前的部分,即去除了后缀的那一部分 $# 传递给脚本或函数的参数个数 $? 上个命令的退出状态,或函数的返回值 所有比目标新的依赖目标的集合。以空格分隔 $^ 所有的依赖目标的集合。以空格分隔。...

Go_to_Future的博客 279

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

make,makefile,shell中的加号+,减号-和at号@的含义

原文地址:https://www.cnblogs.com/leaven/p/4337628.html http://www.crifan.com/order_make__makefile_in_the_plus__minus_-_and_at_the_meaning_of_numbers/ 在看makefile,其中有些依赖规则中的命令行前面,会有一些减号“-”或者at符号“@”, 比如: ...

microchenhong的专栏 1781

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

编程语言中特殊符号的英文表示

-

zorchp 1840

Shell 脚本 + Makefile 核心语法:$ 用法与扩展逻辑

触发内容解析(变量值、命令输出、算术结果、函数返回值),无则为纯文本;Shell 中关注 “命令执行、算术运算、Shell 状态”,Makefile 中关注 “变量替换、规则上下文、内置函数”;

2401_87727424的博客 830

Makefile中的$的使用

在Makefile中看到$这个符号,就能想到变量。$符号后面跟着的都是变量。 例如: A="equal" all: @echo A @echo $A 执行make命令,输出 也就是说$符号起到了一个转义的作用。 那么有时候我们还会看到更复杂一些的,比如 A = $(shell pwd) all: @echo A @e

m7548352的博客 1862

各种编程语言中$符号的意义

这篇文章主要介绍了各种编程语言中$符号的意义,本文是给编程新手看的,$符号在多种编程语言中都在使用,需要的朋友可以参考下,最近开发过程中使用了多种脚本语言,在这些语言中发现很多的$符号,而每种脚本语言的$符号的用法和意义均不相同,所以借博文总结总结。在linux应用开发中经常使用makefile脚本和shell脚本,有趣的是,这两种脚本使用$符号时存在明显差异,虽然在这两种脚...

weixin_33834137的博客 2757

Makefile中的$

在Makefile中,$符号一般有三种用法: 1,变量引用,如 2,函数调用,如: 3,shell 命令,如: 在Makefile中还有一个$$的用法,如: SRCS=$(shellls-t|grep"\.cpp$$"|head-1),两个$$中的一个是shell当中要用到,表示匹配指定的结尾字符,另外一个是转义,即:在执行shell命令中要用到$符号时,需要进行转义。那这条语句的意思是:找到最近修改的cpp文件。 SRC = $(shell ls -t | ...

tianyexing2008的博客 1万+

Makefile文件中,两个$的变量变量$$Xxx 与一个$的变量 $Xxx的区别

使用来引用 Makefile 中的变量。使用$$来引用 shell 中的变量,以确保在传递给 shell 时保留单个符号。

编程代码,数据学习开发的日常总结。欢迎关注VX公众号:张飞的猪 658

Makefile 特殊符号 - `-` `@` `+` `$` `$$`

Makefile 特殊符号 - - @ 1. - 符号 (连字符) 任何命令行的任何非零退出状态都被忽略,忽略当前命令行执行时所遇到的错误。 make 在执行命令的时候,如果遇到 error,会退出执行。加上减号的目的是即便此命令行执行出错,那么也不要管,继续执行 make。 通常删除或者创建文件时,遇到文件不存在或者已经创建。如果希望忽略掉错误,继续执行,就可以在命令行前面添加 -。 .PHON...

程永强 6721

Linux Shell脚本攻略:shell中各种括号()、(())、[]、[[]]、{}的作用;Linux Makefile中的:=, =, ?=的区别

技巧小结: 字符串比较用双中括号[[ ]];算数比较用单中括号[ ]——左右留空格 算数运算用双小括号(( )) ;shell命令及输出用小括号( )——左右不留空格 快速替换用花括号{ }——左右留空格 反单引号起着命令替换的作用` ` ------------------------------------------------------------------------...

xiebingsuccess的博客 952

makefile '@' '$' '$$' '-' '-n ' 使用小结

makefile

Tony的专栏 6615
上一篇: Linux启动过程
下一篇: gcc链接外部函数库
Alan0521
博客等级 码龄19年 77粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值