linux-shell脚本编程

正则表达式

  *  代表零个或多个字符:

    ?  代表单个字符

shell脚本第一句:  #!/bin/bash      指定该shell脚本是用哪个shell执行的

``              反引号里面的命令先执行

\              反义字符

>              输出重定向

>>              输出重定向
<              将文本中的命令输入到命令行

<<              内联输入重定向(允许在命令行而不是在文件指定输入重定向数据,而且必须指定一个文本标记来划分输入数据的开头和结尾)

|              管道符号

?(变量)          记录程序执行状态的返回值

echo xxxx        默认不需要用引号将要显示的文本圈起来

              但是如果在字符串中用到了引号,则需要用另一个引号将文本圈起来

expr  math-state    执行数学表达式的计算

$[math-state]       执行数学表达式的计算并进行赋值(只能进行整型数据的计算)

bc            bash内置的计算器(先执行再将结果返回,或者使用内联输入重定向来执行多条语句)

结构化命令:

if-then语句:

if command

then

  commands

fi

then部分可以写入多条命令,bash shell会将这部分的命令当作一个块

bash shell的if语句会运行if行定义的那个命令,如果该命令的状态返回值为0(该命令执行成功),位于then部分的命令就会被执行,如果命令的退出码的状态是其他的什么值,那么then部分的命令就不会被执行

if-then-else语句:

if  command

then

  commands

else

  commands

fi

当if语句中的返回退出状态码为0时,执行then语句中的命令,当返回非0状态码时,执行else中的命令

嵌套if语句

if  command1

then

  commands

elseif command2

then

  more commands

fi

test命令:

  test  condition  condition是test命令要测试的一系列参数和值

    可判断的三类条件:(具体查看man手册)

       1.数值比较:

       2.字符串比较

       3.文件比较

  注意:>需要进行转义处理

     sort与test命令处理大小写方法正好哦呵湘反,test中大写字母会被当成小写字母处理,但当你将同样的字符放进文件中用sort命令排序时,小写字母会出现,原因:test基于标准ASCII顺序,sort使用系统的本地化语言设置中第定义的排序顺序

猜你喜欢

转载自www.cnblogs.com/chen1262567640/p/11107857.html