• Shell脚本


    1.1.1创建与编写

    Shell脚本通常都以.sh为后缀。第一行内容表示使用bash语法,更加规范。#后面跟一些时间日期版本。

     

    查看

     

    另一种方式

     

    使用该方法需要脚本本身具有执行权限,所以给脚本加一个x

    使用sh时,可以加-x查看这个脚本的执行过程。

     

    1.1.2 date命令

    date +%Y: 表示以四位数字格式打印年份。

    date +%y:表示以两位数字格式打印年份。

    date +%m: 表示月份。

    date +%d: 表示日期。

    date +%H:表示小时。

    date +%M: 表示分钟。

    date +%S: 表示秒。

    date +%w: 表示星期。结果显示o则表示周日。

     

    1.2Shell脚本中的变量

    1.2.1 数学运算

    示例

     

    数学计算要用[       ]括起来,并在前面加$  结果为

     

    1.2.2 和用户交互

    read命令用于和用户交互,他把用户输入的字符串作为变量值。结果为

    加上-x查看整个执行过程

     

    1.2.3 shell脚本预设变量

    在脚本后面跟的参数就是预设变量

     

    $1代表第一个参数$2代表第二个,给shell脚本的预设变量是没有限制的

     

    1.3shell脚本中的逻辑判断

    1.3.1 不带else

    示例

     

    (())时shell中特有的格式,只用一个或者不用都会报错。  结果:

     

    1.3.2 带有else

    示例

     结果

    1.3.3 带有elif

    示例

     

    结果

     

    判断数值大小可以用(())外还可以用[  ]但是不能用<> =,要使用是不能使用>、<、=这样的符号了,要使用-lt (小于)-gt (大于)、-le (小于或等于)、-ge (大于或等于) -eq(等于)、-ne (不等于)   示例

     

    If中使用&&和||的情况

     

    1.3.4 和文档相关的判断

    shell脚本中if还经常用于判断文档的属性,比如判断是普通文件还是目录,判断文件是否有读,写,执行权限等。if常用的选项有以下几个。

    -e:判断文件或目录是否存在。

    -d:判断是不是目录以及是否存在。

    -f: 判断是不是普通文件以及是否存在。

    -r:判断是否有读权限。

     -w: 判断是否有写权限。

    -x:判断是否可执行。

    示例:

     因为/home是目录非文件所以不会显示ok。

    1.3.5 case逻辑判断

    不限制个数 *代表其他数

     

    脚本为1,0时结果为

     

    case常用来编写系统服务的启动脚本。

    1.4 shell脚本中的循环

    1.4.1 for循环

     结果 seq 1 5 表示一到五的序列

     

    for 循环的基本结构格式

    for 变量名 in 循环的条件; do

    command

    done

    这里“循环的条件”可以是一组字符串或者数字(用一-个或者多个空格隔开) ,也可以是一条命

    令的执行结果。如:

     

    循环的条件还可以引用系统的命令的执行结果,但必须用反引号括起来。示例:

     

    1.4.2 while循环

    常用while编写死循环的脚本,用于监控某项服务。格式

    while 条件; do

    command

    done

    示例:

     

    结果

    另外还可以用一个冒号代替循环条件,这样就可以做到死循环。

    While :; do

    command

    sleep 3

    done

    1.5 shell脚本中的函数

    shell脚本中的函数就是先把一段代码整理到一个小单元中,并给这个小单元命名,当用到这段代码时直接调用这个小单元的名字即可。有时候脚本中的某段代码总是重复使用,如果写成函数,每次用到时直接用函数名代替即可,这样不仅节省时间还节省空间。示例

     

    结果:

     

    值得注意的是,在shell脚本中,函数一定要写在最前面,不能出现在中间或者最后。因为函数是要被调用的,如果还没有出现就被调用,肯定会出错。

    1.6 shell 脚本中的中断和继续

    1.6.1 break

    break用在循环中,不管是for或者while都可以。在脚本中使用它,表示退出该层循环。之所以说层,是因为有时我们会用到嵌套循环,大循环里面还有小循环,而break仅仅是退出那一-层循环,它的上层循环不受影响。示例

     

    脚本意思是要把一到五数值赋予i,当i等于3是,会跳出循环,4,5不再执行。结果

     

    1.6.2 continue

    continue也是使用在循环中的,但和break不同的是,当在shell脚本中遇到continue时,结束的不是整个循环,而是本次循环。具体示例如下:

    结果

     

    当i等于3的时候,出现了continue,所以结束本次循环,continue后面的语句不再执行,继续下一次循环。

    1.6.3 exit

    其实,还有一个和break. continue类 似的用法,那就是exit, 它的作用范围更大,直接退出整个shell脚本。 示例脚本如下:

     

    结果

     

    直接结束。

  • 相关阅读:
    OpenCV_Python —— (6)图像色彩空间
    OpenCV_Python —— (5)图像模糊/平滑/滤波
    Java 14 祭出增强版 switch,真香!!
    推荐 9 个 爱不释手的 JSON 工具!
    从 0 开始手写一个 Mybatis 框架,三步搞定!
    Java常用的几个Json库,性能强势对比!
    Oracle JDK 和 OpenJDK 有什么区别?
    极客时间-左耳听风-程序员攻略-UI/UX设计
    OpenCV导向滤波(引导滤波)实现(Guided Filter)代码,以及使用颜色先验算法去雾
    python面向对象小练习
  • 原文地址:https://www.cnblogs.com/xqzz/p/12207079.html
Copyright © 2020-2023  润新知