![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
脚本语言
rockly89
这个作者很懒,什么都没留下…
展开
-
Makefile 中:= ?= += =的区别
在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE VRE = “Hello World!”elseendififeq ($(OPT),define) VRE ?= “Hello World! First!”endif原创 2016-10-09 15:30:10 · 246 阅读 · 0 评论 -
Shell中实现字符串反转
用rev命令可以反转字符串echo "12345" | rev原创 2016-12-19 20:54:05 · 1095 阅读 · 0 评论 -
Shell用declare转换字符串大小写
转小写,只需要将变量名字declare -l 后,再给变量赋值,变量的内容即为小写转大写,只需要将变量名字declare -u后,再给变量赋值,变量的内容即为大写例如:m="abc"echo $m # 输出为abcdeclare -u mecho $m # 输出为abc,m="cde"echo $m # 输出为CDEdeclare -l m="HELL"转载 2017-02-17 14:09:39 · 1536 阅读 · 0 评论 -
shell调用python脚本,并且向python脚本传递参数
shell中:python test.py $para1 $para2python中:def main($canshu1, $canshu2) .....main(sys.argv[1], sys.argv[2])原创 2017-02-17 14:14:37 · 20461 阅读 · 0 评论 -
如何编译lex文件和yacc文件
lex文件:flex filename.l或者flex filename.lexyacc文件:bison filename.y或者flex filename.yacclex解析此法yacc解析语法lex说穿了,基本套路就是:1. 创建lex文件2. 使用flex xxx.lex来生成.c文件3. 使用c编译器(如gcc),来生成一个可执行原创 2017-02-19 16:23:05 · 4562 阅读 · 0 评论 -
shell读取文件中的内容
var=$(cat filename.txt)原创 2017-02-12 16:59:43 · 9131 阅读 · 0 评论 -
linux shell 获取当前正在执行脚本的绝对路径
原文链接:http://sexywp.com/bash-how-to-get-the-basepath-of-current-running-script.htm 常见的一种误区,是使用 pwd 命令,该命令的作用是“print name of current/working directory”,这才是此命令的真实含义,当前的工作目录,这里没有任何意思说明,这个目录就是脚本存转载 2017-02-21 18:49:42 · 553 阅读 · 0 评论 -
Shell中获取单个文件大小
stat --format=%s $filenamels -l filename | awk '{print $5}'du -b filename | awk '{print $1}'wc -c filename | awk '{print $1}'wc -c < filenamestat -c "%s" filename原创 2017-02-13 16:58:56 · 37159 阅读 · 0 评论 -
shell脚本四种数值计算方式
Bash shell 的算术运算有四种方式:1:使用 expr 外部程式加法 r=`expr 4 + 5`echo $r注意! '4' '+' '5' 这三者之间要有空白r=`expr 4 * 5` #错误乘法 r=`expr 4 \* 5`2:使用 $(( ))r=$(( 4 + 5 ))echo $r3:使用 $[ ]r=$[ 4 +转载 2017-02-14 15:05:58 · 1651 阅读 · 0 评论 -
Linux下统计当前文件夹下的文件个数、目录个数
1) 统计当前文件夹下文件的个数复制代码代码如下:ls -l |grep "^-"|wc -l2) 统计当前文件夹下目录的个数复制代码代码如下:ls -l |grep "^d"|wc -l 3) 统计当前文件夹下文件的个数,包括子文件夹里的 复制代码代码如下:ls -lR|grep "^-"转载 2017-02-14 15:08:27 · 470 阅读 · 0 评论 -
Android.mk中的调试方法
$(warning 111111111) 输出11111111$(warning 1111111 $(test)) 取test变量的值原创 2016-12-09 09:33:21 · 1540 阅读 · 0 评论 -
关于shell中函数的返回值
shell中函数的返回值有两种情况1 直接通过标准输出返回 2 用return返回1 直接通过标准输出返回 ,这是我比较推荐的方法在shell中定义的函数,如果不用return作为返回值,函数就会直接将输出到标准输出中的内容作为返回值。因此,我们可以用这种方式,在函数中如果得到了某个想要作为返回值的变量,直接执行echo $varname,即可将这个变量的值作为函数值返原创 2016-12-05 22:19:20 · 4440 阅读 · 0 评论 -
Makefile中指示符“include”、“-include”和“sinclude”的区别
如果指示符“include”指定的文件不是以斜线开始(绝对路径,如/usr/src/Makefile...),而且当前目录下也不存在此文件;make将根据文件名试图在以下几个目录下查找:首先,查找使用命令行选项“-I”或者“--include-dir”指定的目录,如果找到指定的文件,则使用这个文件;否则继续依此搜索以下几个目录(如果其存在):“/usr/gnu/include”、“/usr/loc原创 2016-10-09 17:41:37 · 327 阅读 · 0 评论 -
Makefile中的文件名操作函数--dir
$(dir ) 名称:取目录函数——dir。 功能:从文件名序列中取出目录部分。目录部分是指最后一个反斜杠(“/”)之前的部分。如果没有反斜杠,那么返回“./”。 返回:返回文件名序列的目录部分。 示例: $(dir src/foo.c hacks)返回值是“src/ ./”。原创 2016-10-10 08:51:02 · 9055 阅读 · 0 评论 -
makefile中的call函数
call函数是唯一一个可以用来创建新的参数化的函数。你可以写一个非常复杂的表达式,这个表达式中,你可以定义许多参数,然后你可以用call函数来向这个表达式传递参数。其语法是:$(call ;,;,;,;...)当make执行这个函数时,;参数中的变量,如$(1),$(2),$(3)等,会被参数;,;,;依次取代。而;的返回值就是 call函数的返回值。例如:reverse =转载 2016-10-12 21:12:41 · 20737 阅读 · 1 评论 -
Makefile调试1--输出打印信息
在makefile中打印输出信息的方法是:$(warning xxxxx)或者$(error xxxxx)输出变量方式为:$(warning $(XXX))例如:$(warinning $(CLEAR_VAR))执行命令:make -p > xx在对应的路径 下,执行makefile, -p, --print-data-base原创 2016-10-12 21:11:41 · 6622 阅读 · 0 评论 -
makefile调试2--显示而不执行make
如果make执行时,带入make参数“-n”或“--just-print”,那么其只是显示命令,但不会执行命令,这个功能很有利于我们调试我们的Makefile,看看我们书写的命令是执行起来是什么样子的或是什么顺序的。而make参数“-s”或“--slient”则是全面禁止命令的显示原创 2016-10-12 22:15:01 · 3991 阅读 · 0 评论 -
如何调试makefile变量
如何调试makefile变量2011年3月1日陈皓发表评论阅读评论22,095 人阅读 六、七年前写过一篇《跟我一起写Makefile》,直到今天,还有一些朋友问我一些Makefile的问题,老实说,我有一段时间没有用Makefile了,生疏了。回顾,这几年来大家问题我的问题,其实很多时候是makefile的调试问题。所以,就像我在之前的那篇关于GDB的技巧的转载 2016-10-14 14:45:04 · 285 阅读 · 0 评论 -
Makefile中$@是什么作用
$@表示生成目标 比如boot.o : boot.c gcc -o $@ -c $ 其中 $@表示生成的目标 boot.o $原创 2016-10-16 16:19:20 · 2261 阅读 · 0 评论 -
Makefile--wildcard函数
在文件名中使用通配符:Makefile的通配符为*,?,[],与shell使用的是一样的通配符。Makefile的通配符只有在targets 和prerequisites中展开,在定义变量时是不会展开的,如果想在定义变量时展开通配符,需要使用wildcard函数。如果文件名包含*,号,需要用\号转义,如foo*bar可以这样表示:foo\*bar.如在/opt/转载 2016-10-18 17:57:14 · 550 阅读 · 0 评论 -
echo输出多行内容到文件
执行echo时,如果用 > 输出到文件,会将文件内容清空并输出如name=bashecho “my name is $name” > file.txtcat file.txt“my name is bash”因此这种情况下,输出字符串后面带不带'\n'都不会换行如果用 >> 输出到文件,会将内容从文件最后面另起一行输出。原创 2016-12-05 21:23:30 · 40285 阅读 · 2 评论 -
Bash Co-Processes
http://www.linuxjournal.com/content/bash-co-processesOne of the new features in bash 4.0 is the coproc statement. The coproc statement allows you to create a co-process that is connected to转载 2017-07-10 17:14:53 · 436 阅读 · 0 评论