shell编程
阿翔同学
这不是通往幼儿园的车车
展开
-
makefile函数和特殊变量和变量
我们这里只要介绍makefile中的两个函数(makefile中不止两个函数)在makefill中所有函数都是有返回值的 必须拿到这个返回值(和shell中的函数不同,shell函数中函数没有返回值和参数表,但是可以像调用程序一样输入命令行(可以理解成参数),进程的结束状态(int类型)可以变相理解成返回值,这些在前面的章节 我们已经介绍过了)1.wildcard函数和变量一样要加 $来获取值, ()括起来然后函数名(wildcard 参数)src=$(wildcard ./*.原创 2020-06-20 12:07:16 · 381 阅读 · 0 评论 -
makefile概念和原理
首先我们讨论一下makefile是什么它为什么会存在makefile是什么?长话短说makefile是一种代码管理工具,也是一种shell脚本为什么会存在呢? 例如通常我们编译一个 cpp 文件:g++ main.cpp -o main这样的也许我们觉得很轻松 但是如果要编译的文件数量有几十个呢?难道我们 g++ main.cpp server.cpp client.cpp ...... cpp -o main 这样写嘛? 再者 我们每次修改之后都要重新编译这些文件又要重新写 错误.原创 2020-06-19 21:33:56 · 1820 阅读 · 2 评论 -
shell编程-函数
如同其他语言一样 shell 也有自己的函数 ,但是就是没有返回值 和 参数列表1.先来看一个 demo注意(易错):1.函数体 左边的 " { " 必须和 下一条命令 有空格或者换行2.函数体 右边的 “ } ” 必须和上一条命令(如果在同一行的话),用分号隔开但是不建议这么些 因为可读性不好效果:2.虽然说 shell中的函数 没有参数列表 但并不表示不能传递参数,事实上 函数就相当于迷你的脚本,在调用函数是可以任意的传递参数, 在函数内 同样是用 位...原创 2020-06-18 21:30:39 · 218 阅读 · 0 评论 -
shell编程-输入输出(重定向)
echo显示文本/变量到标准输出 ,或者输出到文本echo [option] string-e 解析转义字符-n 不回车 换行 (某认 是要输出一个 换行符的)效果:更多的shell编程我会在下面的文章中陆续的分享,也可以关注‘奇牛学院’来一起讨论...原创 2020-06-18 11:14:40 · 274 阅读 · 0 评论 -
shell编程-位置参数和特殊变量
位置参数和特殊变量首先我们先来聊聊 C/C++的命令行参数一遍大家理解shell的位置参数和特殊变量int main(int argc, char* argv[])1.argc表示参数的个数 比如 ./a.out do some asldkfj这样的话 argc == 3 把 可执行文件 ./a.out 也包含进来了2.argv表示一个 指针数组 ,数组中的每个元素都是一个指针,每一指针又是 一个 字符串的首地址这样的话 argv[0] == "./a.out",...原创 2020-06-18 10:13:21 · 872 阅读 · 0 评论 -
shell编程-for/while循环
shell编程的for循环 与C语言的for循环很不一样,他类似与其他编程语言的foreach1.for/do/donedemo:你看 是否是和 foreach 类似的 FRUIT 依次取 apple banana pear中的值do表示 开始循环体的块标记 类似 ”{“done表示结束循环 的块标记 类似 “}“然后输出效果:在例如我们可以这样删除一些文件 也是 for 循环的一种运用2.while循环while/do/donedemo:...原创 2020-06-18 09:13:10 · 274 阅读 · 0 评论 -
shell编程-case/esac分支语句
case/esac分支语句就类似于C语言的switch case 分支语句,但是呢语法又有些不同我们先来看一个简单的例子然后我们再来讲解一下各个 关键字符 或者关键字的含义这里read YES_OR_NO等待用户输入一个字符串(进程阻塞), 然后 case “$YES_OR_NO” in这个 in 表示 在那条分支。” )"表示 条件结束。“;;” 表示 分支的处理结束 相当于 C语言中 switch case 中的 break,来实现跳出switch语句第一个分支:ye...原创 2020-06-18 08:19:08 · 615 阅读 · 0 评论 -
shell编程-if/else/fi分支语句
1.if/then/elif/else/fi与C语言的类似,if (某个条件) 成立就执行 这后面 要加一个 then 可以理解成那么elif => c语言中的 else if ()某个条件fi 则是 结束 这个 if 语句的结束标志 因为 C语言中 一般都是if(){ } 用 括号结束 但是 shell中则不是用括号结束例如:(sample.sh 的作用如下)如果sample.sh是一个文件 就执行这个文件这里提醒一点 “[” 表示条件...原创 2020-06-18 07:01:20 · 5803 阅读 · 0 评论 -
shell编程-单双引号&条件测试
我们可以清楚的看到 val 是一个本地变量 当echo $val是 输出的是本地变量里面的值当用 单引号 '$val'是 就表示 输出 '$val' 这个字符串,"$val"不会输出 $val这个字符串而是输出 和 echo $val一样的值的 ,因此我建议 你要输出某个变量值的时候 都加一个 “ ”这样比较好为什么呢?理由如下被双引号 括住的内容 被视为单一字符串,他防止通配符扩展,但允许变量扩展条件测试echo $? 表示上一个进程的结束值首先我们先来了解...原创 2020-06-17 15:03:30 · 198 阅读 · 0 评论 -
shell编程-代换
接下来我们来了解一下代换:文件名替代,命令替代,算术替代一.文件名代换(Globbing)说白了就是通配符 (后续的扩展正则中我们将详细运用) 如 * ?[ ] 具体如下* 表示匹配 0 或者 多个任意字符?表示匹配任意一个字符[ ] 表示 匹配括号中任意一个字符的一次出现二.命令替代有 “ ` ”(反单引号,在esc键下面的)括起来的命令注意 这个 和 上篇文章说到的别名要区分开来 一个 是 alias pg='ps aux | grep' ...原创 2020-06-17 13:59:20 · 148 阅读 · 0 评论