[关闭]
@wyjgd 2019-08-25T13:35:43.000000Z 字数 1404 阅读 757

shell脚本


shell基础

shell脚本:包含一些命令或声明,并符合一定格式的文本文件
格式要求:首行shebang机制
          #!/bin/bash
          #!/bin/python
          #/bin/perl
用途: 自动化常用命令
      执行系统管理和故障排除
      创建简单的应用程序
      处理文本或文件

创建shell脚本

1、第一行必须写shebang机制(#/bin/bash)
2、添加相关注释(#xxxxxx)
3、给予脚本文件执行权限(chmod +x xx.sh)
4、运行脚本

脚本调试可以用sh -n检测语法错误或sh -x调试执行测试

局部变量

变量赋值:name='value'
引用变量:
    直接引用:name="root"
    变量引用:name="$root"
        命令引用:name=`command` name=$(command)
变量引用:${name} $name
    "" : 弱引用,变量引用会被替换为变量值
    '' : 强引用,变量引用不会被替换为变量值,保持原字符串
显示已定义的所有变量:set
删除变量:unset

环境变量

变量声明、赋值:
    export name=value
    declare -x name=value
变量引用:${name},$name
显示所有环境变量:
    env
    printenv
    export
    declare -x
删除变量:
    unset name
内建环境变量:
    PATH、SHELL、USER、LANG、HISTSIZE、HOME、PWD、SHLVL、MAIL等

位置变量

$1,$2....... :对应第1、第2等参数
$0:命令本身
    $*:所有参数,全部参数为一个字符串
$@:所有参数,每个参数为独立字符串
        $*和$@在被双引号括起来时,才有差异
    $#:参数个数
set --:清空位置变量

退出状态

进程使用退出状态来报告成功或失败:
    0 代表成功,1-255代表失败
    $?:最近命令退出状态
bash中自定义退出状态码
    exit [n]:自定义退出状态码
    脚本运行中,遇到exit命令,会立即终止;退出后的状态码取决于exit后的数字。

运算符

+,-,*,/,%取模(取余),**
实现算术运算:
let var=算术表达式
    var=$[算术表达式]
        var=$((算术表达式))
    var=$(expr arg1 arg2 arg3..)
        echo '算术表达式'| bc
    bash中内建的随机数生成器:$RANDIM(0-32767)
    let var=$RANDOM%50:0-49之间的随机数

逻辑运算符

true or false:1 or 0
与:
    1 与 1 = 1
    1 与 0 = 0
    0 与 1 = 0
    0 与 0 = 0
或:
    1 或 1 = 1
    1 或 0 = 1
    0 或 1 = 1
    0 或 0 = 0
非:!
    !1 = 0
    !0 = 1
短路运算
    短路与:cmd1 && cmd2
        cmd1为真,则执行cmd2
        cmd1为假,则不执行cmd2
    短路或:cmd1 || cmd2
        cmd1为真,则不执行cmd2
        cmd1为假,则执行cmd2
异或:^
    异或的两个值相同为假,不同为真

EXAMPLE

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注