zoukankan      html  css  js  c++  java
  • linux脚本编程技术

                        linux脚本编程技术

     一、什么是脚本

      脚本是一个包含一系列命令序列的可执行(777)文本文件。当运行这个脚本文件时,文件中包含的命令序列将得到自动执行。

    二、脚本编程

      #!/bin/sh 首行固定格式

      #!表明该脚本的的解析器,这里使用/bin/sh来解析

    2.1变量

      shell脚本允许用户设置和使用自己的变量,变量可以是数字或者字符串,用户无需指定其类型,也无需在使用前定义。

      #!/bin/sh
      a="hello world"

      b=5
      echo “A is: $a”  //使用变量时要用$符号

      echo “B is $b”

    2.2参数

      同C程序一样,shell本中也可以使用命令行参数

    1. $#:传入脚本的命令行参数个数
    2. $*:所有命令行参数值,在各个参数值之间留有空格
    3. $0:命令本身(shell文件名)
    4. $1:第一个命令行参数
    5. $2:第二个命令行参数

    2.3数学计算

      shell脚本提供了一个专门的命令expr来计算数学表达式,例如expr 5 +1,但是当要把计算的结果赋值给其他变量的时候,还必须使用反号(键盘上~按键就是反引号)。

      var=`expr 20 / 10`

    2.4if语句

      shell脚本中最基本的流程控制语句就是if-then,使用格式:

      if [ condition ] (特别提醒:方括号左右两边必须有空格)

      then
        commands
      else
        commands
      fi

    2.4.1for语句

      shell脚本提供了for命令,用于创建类似于c语言编程中for语句一样的循环。使用格式:

      for var in list
      do
      commands
      done

    2.4.2while语句

      shell脚本提供了while命令,用于创建类似于c语言编程中while语句一样的循环。使用格式:

      while [ condition ]
      do
      commands
      done 

    2.5条件比较

      比较操作     整数操作   字符串操作
      相同       -eq       =
      不同       -ne       !=
      大于       -gt       >
      小于       -lt        <
      大于或等于     -ge
      小于或等于     -le
      为空       -z
      不为空       -n

    例:

    1. 比较整数a和b是否相等:if [ $a = $b ] (也可用eq)
    2. 判断整数a是否大于整数b:if [ $a -gt $b]
    3. 比较字符串a和b是否相等:if [ $a = $b]
    4. 判断字符串a是否为空: if [ -z $a]
    5. 判断整数变量a是否大于b:if [ $a -gt $b]

    注意:
      1. 在“[”和“]”符号的左右都留有空格
      2. “=”左右都有空格

      -e 文件已经存在
      -f 文件是普通文件
      -s 文件大小不为零
      -d 文件是一个目录
      -r 文件对当前用户可以读取
      -w 文件对当前用户可以写入
      -x 文件对当前用户可以执行
      

    2.6sed编辑器

      Sed(Stream Editor) : 流式编辑器又名行编辑器,每次只编辑一行,使用格式如下:

      sed [操作选项] ‘命令’ 文件名
    常用操作选项:
      -n∶指定处理后只显示该行
      -n∶指定处理后只显示该行
      -e∶进行多项编辑任务
      -i∶直接修改读取的文件内容,而不是由屏幕输出

    常用命令选项:

      p 打印匹配行
      a 新增
      c 替代一行
      d 删除定位行
      s 替代一行中的某些部分

    2.6.1sed-范例

    1. 显示
      •sed -n '2p' tmp.txt 只显示第2行
      •sed -n '1,3p' temp.txt 打印第1行到第3行
      •sed -n '/mov/'p temp.txt 打印含movie的行
    2. 删除
      •sed ‘2d’ tmp.txt 删除第2行
      •sed ‘3,$d’ tmp.txt 删除第3行到最后一行,$:最后一行
    3. 查询
      sed -n ‘/hello/p’ tmp.txt 查询包括关键字hello的所有行

    4. 代替
      •sed ‘1c Hi’ tmp.txt 第1行代替为Hi
      •sed -n '/hello/p' tmp.txt | sed 's/hello/bird/g'
    5. 插入
      •sed -i ‘$a bye’ tmp.txt 在最后一行插入bye

    2.6.2awk分析器

      awk是一个强大的文本分析工具,它把文件逐行的读入,以空格为默认分隔符将每行分割为多个字段。

    使用方式:
      awk ‘{pattern + action}' filenames
      pattern 要查找的内容
      pattern 要查找的内容
      action 找到匹配内容时所执行的命令
    范例:
      

  • 相关阅读:
    zoj 2316 Matrix Multiplication 解题报告
    BestCoder7 1001 Little Pony and Permutation(hdu 4985) 解题报告
    codeforces 463C. Gargari and Bishops 解题报告
    codeforces 463B Caisa and Pylons 解题报告
    codeforces 463A Caisa and Sugar 解题报告
    CSS3新的字体尺寸单位rem
    CSS中文字体对照表
    引用外部CSS的link和import方式的分析与比较
    CSS样式表引用方式
    10个CSS简写/优化技巧
  • 原文地址:https://www.cnblogs.com/wmx-learn/p/5318741.html
Copyright © 2011-2022 走看看