shell学习
文章平均质量分 55
从shell基础到可以完成shell脚本的书写
皮蛋粥深度爱好者
身处落雨的黄昏
展开
-
Shell中 ()、(())、[]、[[]]、{} 的作用
①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。②命令替换。等同于cmd扫描一遍命令行,发现了(cmd)结构,便将(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令。有些shell不支持,如tcsh。③用于初始化数组。如:array=(a b c d)①整数扩展。这种扩展计算是整数型的计算,不支持浮点型。原创 2024-09-22 10:29:26 · 1072 阅读 · 0 评论 -
shell的调试
优点:和bash -x相比,set -x可以缩小调试的作用域。可以在脚本中直接调用需要调试的区域。-v: 在执行脚本时,先将脚本的内容输出到屏幕上然后执行脚本,如果有错误,也会给出错误;-x:将执行的脚本内容及输出显示到屏幕上,这个是对调试很有用的参数。-n: 不会执行该脚本,仅查询脚本语法是否有问题,并给出错误提示。2)开启调试功能通过set-x命令,而关闭调试功能通过set+x.set-x 显示所有命令及其参数。set-n 读命令但并不执行。set-v 显示读取的所有行。1)同bash命令参数功能。原创 2024-09-12 00:08:17 · 171 阅读 · 0 评论 -
shell中常用的命令
它可以按照指定的排序规则对文件中的行进行排序,并输出排序后的结果。初始情况,模式空间和保持空间都是没有内容的。每次循环读取数据的过程中,模式空间的原内容都会被清空写入新的内容,但保持空间的内容保持不变,不会在循环中被删除,除非使用sed命令操作保持空间。,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。awk是一种处理文本文件的编程语言,文件的每行数据都被称为记录,默认以空格或制表符为分隔符,每条记录被分成若干字段(列),awk每次从文件中读取一条记录。原创 2024-09-12 00:07:56 · 1397 阅读 · 0 评论 -
数组的介绍
如果有过用其它语言编程的经历,那么想必会熟悉数组的概念。由于有了数组,可以用相同名字引用一系列变量,并用数字(索引)来识别它们。在许多场合,使用数组可以缩短和简化程序开发,因为可以利用索引值设计一个循环,高效处理多种情况。数组就是把有限个元素变量或数据用一个名字命名,然后用编号区分他们的变量的集合。组成数组的各个变量成为数组的分量,也称为数组的元素,有时也称为下标变量。c=3,变量如果多了,再一个定义很费劲,并且取变量的也费劲。简单的说,数组就是各种数据类型的元素按一定顺序排列的集合。原创 2024-09-12 00:07:20 · 121 阅读 · 0 评论 -
break continue exit return 对比
n 表示退到第n层继续循环,如果省略n表示跳过本次循环,忽略本次循环的剩余代码,进入循环的下一次循环。退出当前shell程序,n为返回值,n也可以省略,再下一个shell里通过$?一般用于循环结构中控制循环 {for,while,if} 的走向。用于在函数里,作为函数的返回值,用于判断函数执行是否正确。n 表示跳出循环的层数,如果省略 n 表示跳出整个循环。原创 2024-09-12 00:06:54 · 148 阅读 · 0 评论 -
for循环结构
【代码】for循环结构。原创 2024-09-12 00:06:23 · 130 阅读 · 0 评论 -
当型循环和直到型循环
例2:一个oldboy.log日志10个ip记录,每10秒中一个导出到oldgirl.log中,倒腾到oldgirl.log里和oldboy.log内容一样。手机充值10元,每发一次短信(输出当前余额)花费1角5分钱,当余额低于1角5分钱不能发短信,提示余额不足,请充值(可以允许用户充值继续发短信),请用while语句实现。while循环工作中使用的不多,一般是守护进程程序或始终循环执行场景,其他循环计算,替换while。条件表达式,简短的判断(文件是否存在,字符串是否为空等).统一单位,统一成整数。原创 2024-09-12 00:05:51 · 634 阅读 · 0 评论 -
case结构条件句
当用户选择水果的时候,打印告诉它选择的水果是什么,并。要求用case语句实现,输入正确后需要用循环继续输入。case语句实际上就是规范的多分支if语句。输入数字后会打印出你的数字。给水果单词加上一种颜色。原创 2024-09-12 00:05:17 · 247 阅读 · 0 评论 -
为什么要使用shell函数
b. 函数定义及函数体必须要在执行函数名前面定义,shell执行是从上到下。提示:输入nginx 指令就相当于执行/application/nginx/sbin/nginx.强调:对于shell来说,linux系统的2000个命令都可以说是shell的函数。提示:shell的返回值是exit输出返回值,而函数中用return来输出返回值。提示:函数的传参和脚本的传参类似,只需要将脚本名换成函数名即可。简单地说,函数的作用就是把程序里多次调用相同的代码部分定义成一份,然后为这。[函数后接的参数说明】.原创 2024-09-12 00:04:39 · 318 阅读 · 0 评论 -
输出带颜色的内容
打印第一个参数为颜色,打印第二个参数为内容。原创 2024-09-12 00:04:00 · 103 阅读 · 0 评论 -
shell中如何进行整数计算
使用双括号((...))结构:不支持小数运算。原创 2024-09-12 00:03:23 · 248 阅读 · 0 评论 -
shell中单双引号和不加引号的区别
单引号:所见即所得,即将单引号内的内容原样输出,任何字符都只会当成普通字符,除了单引号本身。双引号:把双引号内的内容输出出来,如果内容中有命令,变量等,会先把变量,命令解析出结果,然后再输出最终内容来。无引号:把内容输出出来,但可能不会将含有空格的字符串视为一个整体输出,如果内容中有命令,变量等,会先把变量,命令解析结果,然后再输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用,不过最好用双引号替代之。原创 2024-09-11 19:03:14 · 355 阅读 · 0 评论 -
.和source与bash或sh执行脚本时的区别
结论一: ./*.sh的执行方式等价于sh ./*.sh或者bash ./*.sh,此三种执行脚本的方式都是重新启动一个子shell,在子shell中执行此脚本,脚本中设置的变量在脚本执行完毕后不会保存。结论二: source ./*.sh和 . ./*.sh的执行方式是等价的,即两种执行方式都是在当前shell进程中执行此脚本,而不是重新启动一个shell 在子shell进程中执行此脚本,并且脚本中设置的变量在脚本执行完毕后会保存下来。注意,在 . 命令和脚本文件之间有一个空格。原创 2024-09-11 19:02:16 · 426 阅读 · 0 评论 -
if条件语句
也可以根据判断页面数据可否下载判断。没有的话进行下载并开启。原创 2024-09-11 19:01:00 · 197 阅读 · 0 评论 -
基础运算符
大于( >) 、大于等于(>=) 、 小于(<)、 小于等于(<=)、 等于(==) 、 不等(!|| : 如果第一个条件为真,则不会执行第二个条件,因为只要有一个条件为真,整个表达式就为真。, 第一个条件执行成功后,再执行第二条,,任何一个条件失败,表达式直接返回false。示例: 大于( >) 、大于等于(>=) 、 小于(<)、 小于等于(<=)加(+)、减(-)、乘(*)、除(/)、取余(%)示例:等于(==) 、 不等(!1、与(&&) 和 或( || )2、与(-a)、或(-o)原创 2024-09-11 18:57:47 · 878 阅读 · 0 评论 -
重定向及有关shell的特殊变量
【代码】重定向及有关shell的特殊变量。原创 2024-09-11 18:55:45 · 121 阅读 · 0 评论 -
shell基础讲解
1,脚本不是你写的或者windows下开发的脚本,你检查脚本明明没有问题,但就是执行出现错误,要想到执行 dos2unix 格式化下。(2)shell可以调用其他程序(同时给其他程序传递参数与数据),并获取其他程序的处理结果。(3)shell可以在多个程序之间传递数据,即把某一个程序的输出作为另一个程序的输入。思考开发的框架,尽量模块化开发(第一关,第二关,第三关),复杂的脚本要分段实现。(1)shell可以解释用户输入的命令,并将它传递给内核。好习惯:每次写脚本都执行dos2unix 格式化下。原创 2024-09-11 18:51:46 · 170 阅读 · 0 评论