• linux基础(6)-shell编程


    shell脚本

    shell脚本程序:以文件形式存放批量的linux命令集合,该文件能够被shell释放执行。通常由一段linux命令、shell命令、控制语句以及注释语句构成。
    shell脚本特点:
    • 第一行需指定用哪个程序来编译和执行脚本,如#!/bin/bash 或者#!/bin/sh
    • 通常shell脚本以.sh为后缀
    shell脚本执行权限:
    • 有执行权限,可以./filename.sh
    • 无执行权限,可以sh filename.sh
    变量与引用
    定义变量
    • 定义变量时变量名不加美元符号
    • 注意等号两边不能有空格如:name="wujiadong"
    • 变量名不能以数字开头
    • export命令可以使变量用于子进程
    • 变量赋值时,若值中有空格,必须使用双引号括起来
    使用变量
    • 使用一个定义过的变量,只要在变量名前加美元符号。
    • 显示变量:echo $name 或echo ${name}
    • 清除变量:unset name

    实例1

    test11.sh

    1 #!/bin/bash
    2 v1="feigu"
    3 export v2="wujiadong"  #export命令可以使变量用于子进程
    4 
    5 echo "显示v1:$v1"
    6 echo "显示v2:$v2"
    7 
    8 sh test12.sh

    test12.sh

    1 #!/bin/sh
    2 echo "引用变量v1:$v1"
    3 echo "引用变量v2:$v2"

    执行sh.test11.sh

    控制结构
    判断
    test -e filename 表示是否存在
    -e 是否存在 
    -f 是否存在且为档案(file)
    -d 是否存在且为目录(directory)
     
    -r 是否存在且有可读权限
    -w 是否存在且有可写权限
    -x 是否存在且有可执行权限
     
    两个数之间判断 :test n1 -eq n2
    -eq 两数值相等(equal)
    -ne 两数值不等(not equal)
    -gt n1大于n2(greater than)
    -lt n1小于n2(less than)
    -ge n1大于等于n2(great than or equal)
    -le n1小于n2(less than or equal)
     

    判断字符串的数据

    test -z string 判断字符串是否为0,string为空字符串,则为true
    test -n string 判断字符串是否非为0,string为空字符串,则为false。注:-n可省略
    test str1 = str2 判断str1是否等于str2,若相等,则回传true
    test str1 != str2  判断str1是否不等于str2,若相等,则回传false

    if else

    if 条件
    then 命令
    fi
     
    或者
     
    if 条件
    then 命令1
    else 命令2
    fi
    
    或者
    
    if 条件1
        then 命令1
    elif 条件2
        then 命令2
    else 命令3
    fi

    注意:这里elif是else if的缩写,但不支持else if的写法

  • 相关阅读:
    Django框架 之 MTV模型、 基本命令、简单配置
    Django models模型ORM
    Django 链接数据库错误 Strick Mode 解决
    [BZOJ 2002] [HNOI2010]弹飞绵羊(Link Cut Tree)
    [BJOI2014]大融合(Link Cut Tree)
    [BZOJ1576] [BZOJ3694] [USACO2009Jan] 安全路径(最短路径+树链剖分)
    [Codeforces 1005F]Berland and the Shortest Paths(最短路树+dfs)
    CSP-S 2019游记
    浅谈高维前缀和
    [luogu 3175] [HAOI2015]按位或(min-max容斥+高维前缀和)
  • 原文地址:https://www.cnblogs.com/wujiadong2014/p/5712550.html
Copyright © 2020-2023  润新知