![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
shell脚本
小蜜蜂爱编程
积跬步以致千里,积小流以成江海
展开
-
shell脚本之通过脚本获取本机IP地址
通过shell获取本机ip地址,并传给程序,用作其他用途原创 2020-12-20 14:42:21 · 2461 阅读 · 5 评论 -
shell脚本之字符串测试
有意思的是,当字符串遇到=,!=时,就不再是赋值的含义了= 等于则为真!= 不相等则为真-z 字符串 字符串的长度为零则为真-n 字符串 字符串的长度不为零则为真原创 2020-12-17 22:39:00 · 226 阅读 · 0 评论 -
shell脚本之基本算术运算的两种方法
1、使用expr或awk例:a=10b=20echo `expr a + b`2、使用[]例result=$[a+b] #等号两边不能有空格echo result原创 2020-12-17 22:35:08 · 205 阅读 · 0 评论 -
shell脚本之printf命令打印技巧
shell printf命令简介printf 命令模仿 C 程序库(library)里的 printf() 程序。printf 由 POSIX 标准所定义,因此使用 printf 的脚本比使用 echo 移植性好。printf 使用引用文本或空格分隔的参数,外面可以在 printf 中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认 printf 不会像 echo 自动添加换行符,我们可以手动添加 \n格式printf format-string [arguments...]例原创 2020-12-17 22:27:33 · 1661 阅读 · 0 评论 -
shell脚本之文件测试运算符
常用文件测试运算符文件测试运算符用于检测unix文件的各种属性,常用的文件测试运算符及其属性描述如下:-b file—检测文件是否是块设备文件,如果是,返回true[ -b $file ]-c file—检测文件是否是字符设备文件,如果是,则返回true-d file—检测文件是否是目录,如果是,返回true-f file—检测文件是否是普通文件(非目录/设备文件),如果是,返回true-g file—检测文件是否设置了SGID位,如果是,则返回true-k file—检测文件是否设原创 2020-12-17 22:01:44 · 393 阅读 · 0 评论 -
shell脚本之关系运算符
常用的关系运算符shell脚本关系运算符只支持数字,不支持字符串除非字符串的值是数字。常用的关系运算符如下列出:1、-eq —检测两个数是否相等,如相等返回true原创 2020-12-17 21:50:00 · 951 阅读 · 0 评论 -
shell脚本之算术运算符
shell运算符有哪些1、算术运算符2、关系运算符3、布尔运算符4、字符串运算符5、文件测试运算符需要注意的是,原生的bash不支持简单的数学运算,需要配合其他工具命令实现,如awk, expr。使用expr运算示例#!/bin/bashecho "传入两数相加"echo ${`expr $1 + $2`}计算传入的两数之和。注意,表达式和运算符之间要有空格,不能写成2+2。完整的表达式要使用反引号``包含常用算术运算符1、加法运算符 +2、减法运算符 -(与加法同)3、乘原创 2020-12-16 20:52:15 · 343 阅读 · 0 评论 -
shell脚本之$#与$*的区别
相同点:都能引用所有参数不同点:只有在双引号中体现出来,假设脚本运行写了三个参数1、2、3,∗传递的是“123”一个参数,*传递的是“1 2 3”一个参数,∗传递的是“123”一个参数,#传递的是“1” “2” “3”三个参数...原创 2020-12-16 19:59:00 · 389 阅读 · 0 评论 -
shell脚本之注释技巧
单行注释不用多说,#号多行注释将要注释的代码定义成函数,没有地方调用,则该代码不会执行:<<EOF:<<EOF要注释代码段EOF:<<’ 与 ’同24.:<<! 与 !同2 3原创 2020-12-15 12:57:11 · 257 阅读 · 0 评论 -
shell脚本之shell函数
shell函数定义shell中函数的定义格式如下:[ function ] funname [()] { action; [return int;] } 可以带function fun()定义也可以不带shell函数返回值若显示地使用return,则根据return 的值返回,否则以最后一条命令的运行结果作为返回值例add_func() 26 { 27 echo -e "两数相加\n" 28 echo "请输入第一个数字:" 29 re原创 2020-12-15 12:27:48 · 99 阅读 · 0 评论 -
shell脚本之数组
shell数组简介bash 支持一维数组(不支持多维数组),并且没有限定数组的大小。 类似于 C 语言,数组元素的下标由 0 开始编号。获取数组中的元素要利用下标,下标可以 是整数或算术表达式,其值应大于或等于 0。shell数组定义方法用括号()来定义,数组元素用"空格"符号分割开,见示例2对数组值单个定义,下标可不连续,见示例,对不连续下标数组中不存在的下标打印无输出数组的读取方法读取单个元素${数组名[下标]}echo ${array[n]}4.读取整个数组—使用@或*ec原创 2020-12-15 11:44:27 · 167 阅读 · 0 评论 -
shell脚本之字符串操作
获取字符串长度string=“this is a test”echo ${#string}提取子串echo ${string:3:5}需要注意的是,字符串这里的3:5实际上是提取第4个到第6个,即字符串的起始是从0开始,与c字符数组类似查找子字符串实际上是查找子字符串中字母首次出现的位置,哪个字母先出现就先计算哪个child_str="ae"echo `expr index "$string" $ae`注意上述是反引号不是单引号...原创 2020-12-15 11:02:13 · 231 阅读 · 0 评论 -
shell脚本之字符串的拼接
我们通过一个例子来将字符串拼接详细的解释。#!/bin/bash 1. name='lzs' 2. #str="hello,\"$name\"\n" 3. greeting="hello, $name" 4. greeting1="hello, "$name"" 5. greeting2="hello, ${name}" 6. echo \"\": $greeting $greeting1 $greeting2 7. greeting3='hello, '$name'' 8. greet原创 2020-12-15 10:25:39 · 6080 阅读 · 0 评论 -
shell脚本之Unset命令
unset可以删除变量:unset var被删除后,变量不能再次使用#!/bin/bashvar="unset test"unset varecho $var将无任何输出Unset不能删除只读变量原创 2020-12-15 09:55:55 · 5931 阅读 · 0 评论 -
Linux shell脚本编程之大括号{}使用变量
在shell脚本编程中,我们给变量加上大括号,作用是为了帮助解释器识别变量边界对于变量有空格隔开独立的情形,$val与${val}等价;对于变量之间无空格隔开,想要组合两个变量或变量与字符串时,{}就起到限定边界作用例:for skill in C CPP Linux Shell; do echo "I am good at ${skill}Code"done运行结果依次打印CCode, CPPCode, LinuxCode, ShellCode...原创 2020-12-15 09:35:05 · 2466 阅读 · 0 评论 -
Linux shell编程之检测局域网主机宕机
还是直接上代码#!/bin/bashfor i in {1..254} #-c指定ping几次,-i指定超时 ping -c 2 -i 0.5 192.168.43.$i &> /dev/null #$?是上一个指令的执行返回值 ,0表示没有错误,其他任何值表明有错误 #-eq equal 的缩写 if [$? -eq 0]; then echo "192.168.43.$i is up" else echo "192.168.43.$i is down" fi原创 2020-12-15 09:22:34 · 187 阅读 · 0 评论