zoukankan      html  css  js  c++  java
  • shell入门

    1. 声明
    脚本以 #!/bin/bash 开头 并有执行权限
    也可以直接用 sh (脚本文件名) 不需要权限就可运行

    2. 变量
    定义变量: 变量=值
    撤销变量: unset 变量
    声明静态变量: readonly 变量 (不可unset)

    D=`date` D=$(date) 两种方式把命令的结果赋值给变量

    环境变量
    vim /etc/profile 打开环境变量配置
    TOMCAT_HOME=ZHANGYAGUANG 设置自定义的环境变量(1)
    export TOMCAT_HOME 设置自定义的环境变量(2)
    source /etc/profile 刷新文件
    echo $TOMCAT_HOME 调用

    参数变量
    $n n为数字 10个以上用${10}
    $* 所有参数 一个整体
    $@ 所有参数 每个参数区别对待
    $# 参数的个数

    预定义变量
    $$ 当前的PID(进程号)
    $! 后台运行的最后的PID
    $? 最后一次执行的状态 0:成功 非0:失败

    3. 运算
    A=$[5+6] 推荐
    B=$((5+6))
    C=`expr 10 + 1`
    D=`expr $1 + $2` 调用命令行的参数

    4. 条件判断
    整数比较 文件权限 文件类型
    例: [ "ok" = "ok" ] [ -r /root/shell/aa.txt ] [ -e /root/shell/aa.txt ]
    = 字符串比较 -r 有读的权限 -f 文件存在并且是一个常规文件(隐藏文件)
    -lt 小于 -w 有写 -e 文件存在
    -le 小于等于 -x 有执行 -d 文件存在并且是一个目录
    -eq 等于
    -gt 大于
    -ge 大于等于
    -ne 不等于

    5. if case for while
    注: 空格 和 $ 符号不可缺少
    if:
    if [ $1x == "ab"x ]; then
    echo "you had enter ab"
    elif [ $1x == "cd"x ]; then
    echo "you had enter cd"
    else
    echo "you had enter unexpected word"
    fi

    case:
    case $1 in
    "1")
    echo "周一"
    ;;
    "2")
    echo "周二"
    ;;
    *)
    echo "全天"
    ;;
    esac

    for:
    for i in "$@"
    do
    echo "for遍历= $i"
    done

    SUN=0
    for((i=1;i<=100;i++))
    do
    SUN=$[$SUN+$i]
    done
    echo $SUN

    while:
    SUM=0
    i=0
    while [ $i -le $1 ]
    do
    SUM=$[$i+$SUM]
    i=$[$i+1]
    done
    echo $SUM

    6. read
    语法: read(选项)(参数)
    选项 -p 指定读取时的提示符
    -t 指定读取时的等待时间,超时就不等待了
    例: read -t 5 -p "输入一个数=" NUM1
    echo "你输入的数字是= $NUM1"

    7. 函数
    basename (路径) (后缀) 取文件名
    dirname (路径) 取路径

    自定义函数
    function getNum(){
    SUM=$[$i+$y]
    echo $SUM
    return $SUM
    }
    read -p "i:" i
    read -p "y:" y
    X=$(getNum $i $y)
    echo "X:$X"

    echo 输出
    # 单行注释
    :<<! 内容 ! 多行注释

  • 相关阅读:
    Redis的发布订阅
    Redis的事物
    Redis的持久化
    Redis配置文件详解
    Redis五大数据类型
    Redis安装
    DP练习题回顾
    基环树浅谈
    Tarjan算法浅谈
    拓展欧拉定理浅谈
  • 原文地址:https://www.cnblogs.com/zygyun/p/9712696.html
Copyright © 2011-2022 走看看