
shell编程
文章平均质量分 71
shell编程作为Linux操作系统的好伙伴,在实现Linux操作系统的管理方面扮演重要的角色。
贺茗Y28
这个作者很懒,什么都没留下…
展开
-
awk工具的主要作用在显示数据上。
v 变量名称=值调用变量的时候,直接写变量名称就可以了。如上图所示,是使用awk自定义变量并使用变量的一个演示。如上图所示,BEGIN的意思是awk在真正读取文件内容之前做什么事情。即在真正读取文件内容之前打印输出字符串hello 并且读取输出变量name中的值。BEGIN{}这里的是awk工具中的一个特殊的模式,含义是在真正读取文件内容之前做什么操作。完整的应该是BEGIN{}{action}其中BEGIN{}含义是在真正读取文件内容之前做什么操作。原创 2024-10-23 00:00:30 · 1153 阅读 · 0 评论 -
SHELL函数之的使用
语法1:函数名称() {执行的操作执行的操作语法2:function 函数名称(){执行的操作执行的操作在shell中两种语法建议使用第一种语法去书写函数。原创 2024-10-20 20:10:14 · 163 阅读 · 0 评论 -
SHELL脚本之sed工具
在Linux操作系统中处理文本文件的三剑客即grep,sed,awksed中文名称叫做流编辑器,stream editor作用:修改文本内容,与vim编辑器作用一致。但是与vim编辑器不一致的是sed工具是非交互式工具。原理:默认情况下,sed是不会修改源文件的,所有的修改只是在内存中进行的。逐行修改sed会将文件内容逐行读入到内存(模式空间),在内存中文件内容进行修改,修改完毕后默认还会将内存所有的内容重定向到显示器上。原创 2024-10-20 17:11:00 · 962 阅读 · 0 评论 -
SHELL脚本之数组介绍
如上图所示,这是两种获取数组中全部元素的方法,如上图所示,在获取数组数据的时候,可以用循环的方法去获取数组中的所有数据。如上图所示,在数组中如何去获取数组中的单个数据。原创 2024-10-19 19:16:39 · 275 阅读 · 0 评论 -
expect工具
在写脚本的过程当中不可避免的需要去写交互式命令那么如何让交互式命令在脚本中自动执行?使用expect工具作用:捕获交互式的输出,自动执行交互式命令如上图所示,可以使用expect工具去捕获交互式命令的提示信息。然后让expect工具自动地在这个提示信息之后去填充我们准备好的一些数据。原创 2024-10-19 17:59:23 · 634 阅读 · 0 评论 -
SEHLL脚本之while循环语句和until循环
这个形式的while语法可以用for循环代替,这样更方便。如上图所示,是while循环的一个示例。原创 2024-10-19 15:19:10 · 578 阅读 · 0 评论 -
SHELL脚本之循环语句的for循环以及中断循环的语句
重复循环:1.循环的开始条件2.循环的操作3.循环的结束条件。原创 2024-10-18 18:27:18 · 949 阅读 · 0 评论 -
SHELL脚本之case条件判断
适用于某个变量拥有多种固定的不同的取值语法:case 变量 in值1)执行的操作;;值2)执行的操作;;值3)执行的操作;;*)执行的操作;;esac如上图所示,将来写值的时候,都要以)做为值的结束。当执行的操作写完后都要以英文双分号结束。案例:判断用户的输入,根据用户输入的内容不同显示不同的结果如上图所示,就是根据case语法的基本语法结构。如上图所示,在Linux操作系统中严格区分大小写。如上图所示,在case语法中一个 | 表示或者的意思。原创 2024-10-18 12:59:30 · 478 阅读 · 0 评论 -
SHELL脚本之条件判断——if语句
如上图所示,当执行脚本出现在我们电脑屏幕上的信息对于我们来说,并无用处的时候,为了节省系统资源,保持系统性能,可以使用重定向符号将出现的内容交给/dev/null即系统中的黑洞文件中。如上图所示,这个内容的脚本在我们第一次执行的时候肯定没有问题但是当第二次执行的时候,肯定就会报错了。为了让脚本的执行更加符合人工作的逻辑。所以要加上条件判断。原创 2024-10-17 17:36:22 · 3725 阅读 · 0 评论 -
SHELL脚本之简单脚本案例
bin/bash这行内容,一般是shell脚本中的固定开头,是用来指定命令解释器的。而/bin/bash就是机器中现有的一个shell程序名称。如上图所示,脚本中的命令交给具体的这个shell程序进行解释翻译,然后交给机器内核去执行。而后续的内容再以#开头就是注释了。如上图所示,就是Linux操作系统中的一个用户密码更改的操作。echo "www.l.com":这个部分是在输出字符串"www.l.com"。|:管道符号,用于将前面的输出作为后面命令的输入。原创 2024-10-16 21:16:31 · 435 阅读 · 0 评论 -
awk工具的基本使用
比如我们相要获取/etc/passwd中的第二行文件内容,就可以使用head -n 2 将这个文件中的头两行内容获取出来,随后使用tail -n 1将这两行内容中的最后一行内容获取出来,如上图所示,可以先用grep将命令输出结果需要的一行内容过滤出来,然后将过滤出来的结果交给awk 根据空白字符,将过滤结果分隔成多个部分,最后使用'{print $2}'将结果输出。如上图所示,当我们去获取某一行中的某一部分内容的时候,awk工具非常常用,如上图所示,是使用awk工具获取一行内容中的多个部分。原创 2024-10-16 20:29:55 · 254 阅读 · 0 评论 -
SHELL脚本之三种类型变量
在shell中如果一个变量之前没有定义,那么就会认为这个变量是一个空值,但是不会报错,在python等一些语言中如果这个变量事先没有定义的话,就会报错。如果直接使用第一种方法$datas的方法来调用变量,就会导致系统认为我们在调用变量datas的值,但是这个变量我们并没有定义。如上图所示,在调用变量的值时应该使用双引号,如果使用单引号的话,就变成普通字符输出了,如上图所示,在变量后面有要添加的东西,这时就需要使用${变量值}的方法来调用变量了。注意:变量事先不存在,获取的为空值,不会报错。原创 2024-10-15 23:37:15 · 918 阅读 · 0 评论 -
SHELL脚本之输出语句的使用
shell脚本能够给用户显示一些信息,就需要输出语句的使用。原创 2024-10-15 20:35:12 · 289 阅读 · 0 评论 -
SHELL脚本之重定向符号的使用。
一个shell脚本就是一个普通的文本文件。作用:将重复执行的操作写成脚本,自动执行。二.Linux操作系统中重定向符号的使用。类型:输出重定向符号输入重定向符号命令在屏幕上面所显示的正常结果,这些显示的正常结果都是标准输出。如上图所示,这样的报错,正常来讲就是标准错误输出。原创 2024-10-15 18:51:03 · 573 阅读 · 0 评论 -
shell中的流程控制
有了条件判断才能进行if判断即分支流程,才能进行case的多分支流程,才能进行for循环和while循环。原创 2024-06-19 20:40:11 · 1431 阅读 · 0 评论 -
shell中的条件判断
如上图所示,先定义一个变量=变量值,再使用test $a = hello来判断式子的正确与否,当结果正确的时候返回0,当结果错误时候结果返回1,可以是用echo $?如上图所示,如果相对变量表达式做出正确的判断,就需要使用$a = hello这样的格式,如果使用$a=hello这样只会获取到错误的结果。如上图所示,是在使用[ 需要判断的条件 ] 当结果为真的时候,其结果返回返回数值0,可以是用echo $?如上图所示,这是在使用-f判断这个文件是否存在,使用-d来判断文件是否存在并且是一个目录呢?原创 2024-06-19 11:53:48 · 422 阅读 · 0 评论 -
shell编程中的运算符的讲解
在Linux操作系统中也可以使用expr来进行一些数值的运算,expr接受表达式作为参数,并打印计算结果。如上图所示,是使用变量sum来承接加和后的数据。然后调用变量就是用echo sum=$sum。对于某些复杂的表达式或早期不支持内嵌算术表达式的Shell环境,就可以将sum中的数据打印出来了。仍然是一个可行的选择。原创 2024-06-18 22:09:39 · 239 阅读 · 0 评论 -
shell脚本中的变量
在shell编程中存在系统变量和用户变量,其中系统变量的作用范围是全局,而用户变量的作用范围却是分为全局变量和局部变量。局部变量是只对当前的bash起效。Linux操作系统中shell编程的系统变量大部分是全局变量,小部分是局部变量。$HOME表示当前用户的家目录,$PWD表示当前用户的工作目录,$SHELL表示当前的shell会话,$USER表示当前的用户,如果想查看当前所有的全局环境变量的话,就是用env,printenv的功能和普通的env大致是一样的。原创 2024-06-18 21:52:08 · 1171 阅读 · 1 评论 -
shell编程——脚本入门
第一种和第二种调用shell脚本的方式都相当于是在当前的bash shell大环境下又创建了一个子shell然后将脚本中的命令拿到子shell进程中去实现,但是第三种调用shell脚本的方式确实直接将脚本中的命令拿到当前这个bash shell环境下去执行,原创 2024-06-17 19:52:01 · 426 阅读 · 0 评论