bash高级教程&Makefile
主要介绍分享自己关于bash和Makefile的一点领悟
Achou.Wang
勿在浮沙筑高台
展开
-
bash-shell高级编程--操作符与相关主题
操作符与相关主题操作符赋值变量赋值,初始化或者修改变量的值=通用赋值操作符,可用于算术和字符串赋值。var=12car=bmw # 在=号后面不能出现空白字符的不要混淆=赋值操作符与=测试操作符# = 在这里是测试操作符if [ "$string1" = "$string2" ]# if [ "X$string1" = "X$string2" ] 是一种更安全的做法,# ...原创 2020-02-06 20:39:55 · 891 阅读 · 0 评论 -
bash-shell高级编程--求最大公约数
一个完整的编程语言肯定少不了对计算能力的支持,同样shell脚本中也提供了对计算能力的支持,下面的脚本就是实现求两个数的最大公约数的shell脚本。已在ubuntu16.04上验证过#!/bin/bash# gcd.sh: 最大公约数#使用Euclid的算法# 两个整数的"最大公约数" (gcd),#+ 就是两个整数所能够同时整除的最大的数.# Euclid算法采用连续除法.#...原创 2020-02-01 23:24:05 · 1536 阅读 · 0 评论 -
bash-shell--高级编程
bash-shell1.shell热身shel热身2.bash-shell特殊字符的使用bash-shell特殊字符的使用3.trap–shell调试的不二人选trap–shell调试的不二人选4.tldr一个精简的man手册替代品tldr一个精简的man手册替代品5.shell–变量的替换shell–变量的替换6.[bash-shell高级编程-变量的赋值bash-she...原创 2020-02-01 18:11:26 · 760 阅读 · 0 评论 -
bash-shell高级编程--条件判断
条件判断每一个完整并且合理的程序语言都具有条件判断的功能,并且可以根据条件判断的结果做下一步处理,bash中有test命令,有各种中括号和圆括号操作,和if/then结构条件测试结构使用if/then结构判断命令列表的退出码状态是否为0,如果成功的话,那么就执行接下来一个或多个命令。有一个专有命令[(左括号,特殊字符),这个命令与test命令等价,并且处于效率上的考虑,这是一个内建命令,...原创 2020-02-01 18:04:49 · 3615 阅读 · 0 评论 -
使用脚本实现自动清除指定文件夹下丢失链接文件的符号链接
脚本可清除,指定文件夹下,对视链接文件的符号链接。在使用Linux时,常常会为自己许多文件或者程序建立符号链接,这样就不用每次都到对应的文件夹下去寻找对应的文件而只需要对需要经常访问的文件建立符号链接就可以了,这样就能把你常需要访问的文件放到桌面上,或者指定到另外一个文件夹中。这样访问时,方便了很多,但是用完之后往往留下许多的符号链接,这些链接需要用户自己手动确认是否可以删除,为linux的使...原创 2020-02-01 13:33:43 · 641 阅读 · 0 评论 -
bash-shell高级编程--退出和退出状态码
退出和退出状态码大家都知道exit是用来退出一个脚本,既可以使用exit来结束一个脚本,像常用的C语言一样,它也会返回一个值,这个值会传递给脚本的父进程,父进程会使用这个值做下一步的处理。其实在linux中执行任何一个命令都会返回一个退出码,成功的命令返回0,而不成功的命令返回非零值,非零值通常通常都会解释成一个错误码。当然脚本中的函数和脚本本身也会返回退出状态码,在脚本中最后执行的命令决定...原创 2020-01-30 13:58:48 · 805 阅读 · 0 评论 -
bash-shell高级编程--引用
引用在shell中,引用的意思就是时讲字符串使用双拥好括起来,他的作用就是保护字符串中的特殊字符、不被shell或者shell脚本重新解释,或者扩展。andrew@andrew:~$ ls -l [Ss]*-rwx------ 1 andrew andrew 3849 1月 19 01:07 sources.listandrew@andrew:~$ ls -l "[Ss]*"ls: 无...原创 2020-01-29 16:46:27 · 405 阅读 · 0 评论 -
shell高级编程--引用
引用在shell中,引用的意思就是时讲字符串使用双拥好括起来,他的作用就是保护字符串中的特殊字符、不被shell或者shell脚本重新解释,或者扩展。andrew@andrew:~$ ls -l [Ss]*-rwx------ 1 andrew andrew 3849 1月 19 01:07 sources.listandrew@andrew:~$ ls -l "[Ss]*"ls: 无...原创 2020-01-24 23:50:03 · 252 阅读 · 0 评论 -
bash-高级编程--位置变量
特殊变量类型局部变量这种变量只有代码块或者函数中才可见如果变量用local 来声明, 那么它就只能够在该变量被声明的代码块中可见. 这个代码块就是局部"范围". 在一个函数中, 一个局部变量只有在函数代码块中才有意义.环境变量这种变量将影响用户接口和shell的行为通常情况下,每个进程都有自己的"环境",这个环境是由一组变量组成的, 这些变量存有进程可能需要引用的信息。一个脚本可以...原创 2020-01-18 23:01:54 · 370 阅读 · 0 评论 -
ubuntu16.04上安装graphy-easy
Graph::Easy 是一个处理图形DSL的Perl模块,它有如下功能:提供了一种易懂,可读性很强的图形描述语言一种支持 ASCII Art 的基于网格的布局器可以导出为 Graphviz, VCG (Visualizing Compiler Graphs), GDL (Graph Description LAnguages) 和 GraphML 格式。可以从 Graphviz, VCG...原创 2020-01-18 22:44:32 · 661 阅读 · 0 评论 -
bash-高级编程--变量和参数介绍
文章目录变量的替换使用trap设计一个用于反应程序执行过程的脚本变量的赋值`bash`变量是不区分类型的特殊变量类型变量是什么,变量是脚本编程中进行数据表现的一种方法,说白了,变量不过是计算机为了保留数据项,而在内存中分配的一个位置或一组位置的标识或名字。变量的替换变量的名字就是保存变量值的地方,引用变量的值就叫做变量替换$在shell中要仔细区分变量的名字和变量的值,如果a是一个变量,...原创 2020-01-16 21:55:43 · 600 阅读 · 0 评论 -
shell--变量的替换
文章目录变量的替换小知识加油站--trap使用trap设计一个用于反应程序执行过程的脚本变量是什么,变量是脚本编程中进行数据表现的一种方法,说白了,变量不过是计算机为了保留数据项,而在内存中分配的一个位置或一组位置的标识或名字。变量的替换变量的名字就是保存变量值的地方,引用变量的值就叫做变量替换$在shell中要仔细区分变量的名字和变量的值,如果a是一个变量,那么$a就是引用这个变量的值...原创 2019-11-24 17:43:40 · 511 阅读 · 0 评论 -
trap--shell脚本调试的不二人选
trap简介trap的格式如下,功能就是捕捉信号,并对信号进行处理trap [-lp] [[arg] sigspec ...]arg可以是shell命令或者自定义函数sigspec可以是以下的一个或多个定义在<signal.h>中的信号名或者数值。信号名的大小写不敏感,SIG这个前缀也是可选的。以下的命令的效果都是一样的trap "echo SIGINT" SIGIN...原创 2019-11-24 15:37:48 · 859 阅读 · 0 评论 -
bash-shell中使用的特殊字符总结
文章目录特殊字符`#``;``;;``.``""``''``,``\``/`` ` ``:``!``*``?``$``()``{xxx,yyy,zzz,...}`{}`{} \;``[]``[[]]``(())``> &> >> < <>``<<、<<<``<、>``\<、\>``|``>...原创 2019-11-23 10:50:02 · 878 阅读 · 0 评论 -
shelll热身
文章目录热身为什么使用`shell`带着一个`Sha-Bang`出发(`Sha-Bang`是指`#!`)热身为什么使用shell作为一个从事嵌入式行业的开发人员,每天要打交道的就是和Linux的shell串口,更准却的来说是bash shell,很多人刚从windows的界面操作转到Linux上来时,对看到Linux这个弹出来的控制窗口,多少有点不知所措,甚至有点茫然。书读了一本又一本,博...原创 2019-11-16 12:38:34 · 370 阅读 · 0 评论 -
addprefix --Makefile加前缀函数
加前缀函数——addprefix$(addprefix ,<names…> )名称:加前缀函数——addprefix。功能:把前缀加到中的每个单词后面。返回:返回加过前缀的文件名序列。$(addprefix src/,a.c b.c)返回值为“src/a.c src/b.c”...原创 2019-11-10 11:14:14 · 2847 阅读 · 0 评论 -
bash--shell高级编程-特殊字符
特殊字符用在脚本和其他地方的特殊字符#注释. 行首以#(#!是个例外)开头是注释. # This line is a comment.注释也可以放在于本行命令的后边. echo &amp;amp;amp;amp;quot;A comment will follow.&amp;amp;amp;amp;quot; # 注释在这里.# 注意#前边的空白注释也可以放在本行行首空白的后面.# A tab precedes thi翻译 2018-10-21 18:35:21 · 463 阅读 · 0 评论 -
bash脚本一条命令直接发送http请求
nc命令的讲解请参照:https://blog.csdn.net/andrewgithub/article/details/81951508nc是一个网络工具.常用来连接tcp/udp.也能模拟发送http请求.现在介绍通过shell脚本,一条命令直接发送http请求.命令如下,可以对下面的地址等信息自行修改:#!/bin/bashecho -e "GET /hiknini/ite...原创 2018-11-04 17:47:18 · 5682 阅读 · 0 评论 -
Makefile中的patsubst函数
$(patsubst 原模式, 目标模式, 文件列表)如:在$(patsubst %.c,%.o,$(dir) )中,patsubst把$(dir)中的变量符合后缀是.c的全部替换成.o$(patsubst pattern, replacement,text)表示寻找text中符合模式pattern的字,用replacement替换他们。%是Makefile的通配符...原创 2018-11-04 17:06:37 · 7892 阅读 · 0 评论 -
u-boot的mkconfig文件详解
/etc/network/interfacess原创 2018-09-23 23:06:10 · 272 阅读 · 0 评论 -
Makefile的call函数
define target echo $0 echo $1 echo $2endef all: $(call target,hello, world) clean: $(call target,clean) .PHONY: all clean执行make 或者make all执行的结果是:echo targettargetecho hellohel...原创 2018-11-04 11:57:33 · 3331 阅读 · 0 评论 -
bash算术扩展
使用后置引用的算术扩展(通常都是和expr一起使用) z=`expr $z + 3`#'expr’命令将会执行这个扩展.使用双括号形式的算术扩展, 也可以使用let命令后置引用形式的算术扩展已经被双括号形式所替代了 --((…)) 和 $((…))– 当然也可以使用非常方便的let结构.#! /bin/bashz=$(($z+3))z=$((z+3))echo $z# 也正...原创 2018-10-21 17:51:52 · 297 阅读 · 0 评论 -
bash的简单for循环
bash中的for循环 #!/bin/bash # 列出所有的行星名称. (译者注: 现在的太阳系行星已经有了变化^_^) for planet in Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune luto do echo $planet # 每个行星都被单独打印在一行上. done ech...原创 2018-10-21 18:05:49 · 12079 阅读 · 0 评论 -
ifstat,iftop
文章目录ifstatiftopifstatIfstat is a little tool to report interface activity, just like iostat/vmstat do for other system statistics.ifstat 工具是个网络接口监测工具,比较简单看网络流量默认的使用方式:ifstatandrew@andrew-Thur...原创 2019-09-06 22:28:39 · 665 阅读 · 0 评论