shell编程

作者: 拾柒丶_8257 | 来源:发表于2019-06-13 23:08 被阅读0次

    shell是一个用c语言编写的程序,通过shell用户可以访问操作系统内核服务。既是是一种命令语言,又是一种程序设计语言。
    shell是一门脚本语言(所见即所得)

    shell脚本开发规范
    第一行: #!/bin/bash

    shell脚本的执行两种方式
    chmod u+x xxx.sh
    sh xxx.sh

    shell变量

    变量=值 如:your_name='hello world'
    注意:变量名和等号之间不能有空格,同时,变量名的命名须遵循如下规范:

    • 首个字符必须为字母
    • 中间不能有空格,可以使用下划线 _
    • 不能使用标点符号
    • 不能使用bash里的关键字
      使用一个定义过的变量,只要在变量名加$即可
    your_name="hello world"
    echo $your_name
    echo ${your_name}
    

    变量类型

    • 局部变量
      局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量
    • 环境变量:
      所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。可以用set命令查看当前环境变量
    • shell变量
      shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
    参数传递

    在执行shell脚本时,可以向脚本传递参数。
    脚本内获取参数的格式为:n. n代表一个数字,1为执行脚本的第一个参数,2为执行脚本的第二个参数,。。。0 表示当前脚本名称

    特殊字符

    • $# 传递到脚本的参数的个数
    • $* 以以个单字符串显示所有向脚本传递的参数
    • $$ 脚本运行的当前进程 ID 号
    • $! 后台运行的最后一个进程的ID号
    • @ 与* 相同。但是使用时加引号,并在引号中返回每个参数
    • $? 显示最后命令的退出状态。0 表示没有错误。 其他任何值表示有错误
    shell 运算符

    表达式和运算符之间 要有空格, 列: 2 + 2
    完整的表达式要被``包含

    a=4
    b=20
    # 加法运算
    echo `expr $a + $b`
    # 减法运算
    echo `expr $b - $a`
    # 乘法运算,注意*号前面需要反斜杠
    echo `expr $a \* $b`
    # 除法运算
    echo `expr $b / $a`
    
    此外,还可以通过(())、$[] 进行算术运算
    
    流程控制
    # if else 语句
    if condition1
    then
    command1
    elif condition2
    tnen
    command2
    else
    commandN
    fi
    
    # 条件表达式
    EQ  就是 EQUAL  等于
    NQ  就是NOT EQUAL 不等于
    GT  就是 GREATER THAN 大于
    LT   就是LESS THAN 小于
    GE  就是 GREATER THAN OR EQUAL  大于等于
    LE 就是 LESS THAN OR EQUAL 小于等于
    

    for 循环

    # 方式一
    for N in  1 2 3
    do
    echo $N
    done
    # 或
    for N in 1 2 3 ;do echo $N;done
    # 或
    for N in {1..3};do echo $N;done
    #  方式二
    for ((i=0;i<=5;i++))
    do
    echo  "welcome $i times"
    done
    # 或
    for ((i=0,i<=5;i++));do echo "welcome $i times"; done
    
    while 语法
    # 方式一
    while expression
    do
    command
    done
    # 方式二
     i = 1
    while ((i <= 3))
    do
     let i ++
      echo $i
    done
    # 无限循环
    while true
    do
    command
    done
    
    case语句
    case 值 in
       1)  
            command
    ;;
        2)
          command
    ;;
    esac
    
    函数
    #!/bin/bash
    
    hello(){
        echo " hello world" 
         echo $1   # 参数1
          echo $2    # 参数2
    }
    
    # 函数调用
    hello abc   123
    

    相关文章

      网友评论

        本文标题:shell编程

        本文链接:https://www.haomeiwen.com/subject/ycudfctx.html