老男孩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,如需转载请自行联系原作者






相关文章
|
2月前
|
Shell
shell脚本实战示例
shell脚本实战示例
57 6
|
2月前
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
55 0
|
4月前
|
Shell 索引
shell脚本入门到实战(四)- 数组
shell脚本入门到实战(四)- 数组
|
4月前
|
Shell
shell脚本入门到实战(三) - 变量
shell脚本入门到实战(三) - 变量
|
4月前
|
Shell Linux 人机交互
shell脚本入门到实战(二)--shell输入和格式化输出
shell脚本入门到实战(二)--shell输入和格式化输出
|
5月前
|
运维 Shell C语言
运维(20)- shell awk
运维(20)- shell awk
32 0
|
4月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
143 0
|
5月前
|
运维 Shell 测试技术
运维(23)- shell自动化部署
运维(23)- shell自动化部署
43 0
|
2月前
|
监控 Shell
Shell脚本实战教学
Shell脚本实战教学
25 5
|
3月前
|
存储 运维 Shell
Shell内置命令大全,Linux运维工程师收藏!
Shell内置命令大全,Linux运维工程师收藏!
161 0
Shell内置命令大全,Linux运维工程师收藏!