老男孩shell运维实战例题说明

简介:

老男孩shell运维实战例题说明


背景知识:双中括号[[]]

    ①[[是 bash 程序语言的关键字。并不是一个命令,` ` 结构比[ ]结构更加通用。在[[和]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。

    ②支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。` ` 中匹配字符串或通配符,不需要引号。

    ③使用` `.``.``.` `条件判断结构,而不是[ ... ],能够防止脚本中的许多逻辑错误。比如,&&、||、<和> 操作符能够正常存在于` `条件判断结构中,但是如果出现在[ ]结构中的话,会报错。比如可以直接使用if [[ $a != 1 && $a != 2 ]], 如果不适用双括号, 则为if [ $a -ne 1] && [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ]。

    ④bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。
例子: 
在CODE上查看代码片派生到我的代码片

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if  ($i< 5 )    
    if  [ $i  - lt  5  ]    
    if  [ $a  - ne  1  - a $a ! =  2  ]    
    if  [ $a  - ne  1 ] && [ $a ! =  2  ]    
    if  [[ $a ! =  1  && $a ! =  2  ]]    
          
    for  in  $(seq  0  4 );do echo $i;done    
    for  in  `seq  0  4 `;do echo $i;done    
    for  ((i = 0 ;i< 5 ;i + + ));do echo $i;done    
    for  in  { 0. . 4 };do echo $i;done

老男孩书中例题如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/sh
cat <<END
    1.panxiaoting
    2.gongli
    3.fanbingbing
END
read  - "Which do you like?,Pls input the num:"  a
"$a"  =  "1"  ] && {
     echo  "I guess,you like panxiaoting"
     exit  1
}
"$a"  =  "2"  ] && {
     echo  "I guess,you like gongli"
     exit  1
}
"$a"  =  "3"  ] && {
     echo  "I guess,you like fangbingbing"
     exit  1
}
[[ !  "$a"  = ~ [ 1 - 3 ] ]] && {              ###支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式
     echo  "I guess,you are not man."
}

说明:




     本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/1976683,如需转载请自行联系原作者






相关文章
|
8天前
|
运维 Java Shell
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
44 0
|
8天前
|
Shell
shell脚本实战示例
shell脚本实战示例
60 6
|
8天前
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
78 0
|
8天前
|
Shell 索引
shell脚本入门到实战(四)- 数组
shell脚本入门到实战(四)- 数组
|
8天前
|
Shell
shell脚本入门到实战(三) - 变量
shell脚本入门到实战(三) - 变量
|
8天前
|
Shell Linux 人机交互
shell脚本入门到实战(二)--shell输入和格式化输出
shell脚本入门到实战(二)--shell输入和格式化输出
|
8天前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
326 0
|
6天前
|
运维 Oracle 容灾
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
|
3天前
|
运维 Linux Shell
day02-Linux运维-系统介绍与环境搭建_硬件 系统核心 解释器shell 外围操作系统
day02-Linux运维-系统介绍与环境搭建_硬件 系统核心 解释器shell 外围操作系统
|
8天前
|
运维 数据安全/隐私保护 网络协议
【网络建设与运维】2024年河北省职业院校技能大赛中职组“网络建设与运维”赛项例题(十)
【网络建设与运维】2024年河北省职业院校技能大赛中职组“网络建设与运维”赛项例题(十)
【网络建设与运维】2024年河北省职业院校技能大赛中职组“网络建设与运维”赛项例题(十)