• (11)centos7 shell


    一、变量

    1.系统变量

    echo $PATH #环境变量
    
    echo $USER #当前用户
    
    echo  $HOME #

    2.自定义变量

    • 变量名称一般用大写
    • 等号两侧不能有空格
    • 静态变量不能被unset
    A=100 #定义变量,
    
    unset A #销毁变量
    
    readonly B  #定义静态变量,
    
    echo $A  #使用变量$

    指令赋值给变量

    a1=$(ls -a)  #使用$(),这个指令有的linux不兼容
    a2=`ls -a`  #或者使用 ``
    
    echo $a1
    echo $a2

    3.位置参数变量

    #!/bin/bash
    echo "输入参数个数共:$# 个"
    echo "全部参数1是:$0 , 参数2是:$1"
    echo "输入参数为:$@"
    echo "输入参数为:$*"

    4.预定义变量

    $$ #获取当前进程号
    $! # 后台运行的最后一个进程号
    $? #返回最后一次命令的状态,0表示成功,

    二、运算符

    $()

    echo $(((2+3)*4))

    $[]    ** 两个()等于一个[]

    echo $[(2+3)*4]

    expr

    用expr时符号两边必须要有空格

    echo `expr 2 + 3`

    乘号 

    需要加

    echo `expr 2 * 3`

    比较运算符

    数字的比较: 
    -eq 相等(equal) 
    -ne 不等(not equal) 
    -gt 大于(greater than) 
    -lt 小于(less than) 
    -ge 大于等于 (greater than or equal) 
    -le 小于等于 (less than or equal)
    
    字符串的比较: 
    [ $str1 = $str2 ] 等于 
    [ $str1 != $str2 ] 不等于 
    [ -z $str ] 空字符串返回true 
    [ -n $str ] 或者 [ $str ] 非空字符串返回true

    文件

    -r file     用户可读为真
    -w file     用户可写为真
    -x file     用户可执行为真
    -f file     文件为正规文件为真
    -d file     文件为目录为真
    -c file     文件为字符特殊文件为真
    -b file     文件为块特殊文件为真
    -s file     文件大小非0时为真
    -t file     当文件描述符(默认为1)指定的设备为终端时为真

    三、判断

     1 if

    #!/bin/bash
    
    if [ $1 -gt 15  ]
    then
            echo "大于"
    elif [ $1 -lt 15 ]
    then
            echo "小于"
    else
            echo "等于"
    fi

     2 case

    #!/bin/bash
    
    case $1 in
    "1")
    echo "周一"
    ;;
    "2")
    echo "周二"
    ;;
    *)
    echo "other"
    esac

    四、循环

    1. for循环

    #!/bin/bash
    
    for i in "$*"
    do
            echo "$i"
    done
    
    echo "*********************"
    
    for j in "$@"
    do
            echo "$j"
    done

    2.for循环

    #!/bin/bash
    
    
    for (( i=0 ; i<$1 ; i++))
    do
    echo "print $i"
    done

     

    3.while 

    #!/bin/bash
    
    while [ "$1" ]
    do
            echo "$1"
    done

    五、函数

    1.系统函数

    (1)basename 获取文件全路径下的文件名

    [root@VM_0_2_centos ~]# basename /root/test.txt
    test.txt

    (2)dirname 获取文件全路径的路径部分

    [root@VM_0_2_centos ~]# dirname /root/test.txt
    /root

    2.自定义函数

    #!/bin/bash
    getSum(){
            SUM=$[$n1+$n2]
            echo "求和:$SUM"
    }
    
    read -p "输入参数1:" n1
    read -p "输入参数2:" n2
    
    getSum $n1 $n2

    六、其他

    1读取控制行

    #!/bin/bash
    
    read -p "请输入:" NUM1
    echo "输出: $NUM1"

  • 相关阅读:
    set<char*>s
    sscanf()函数。
    C语言函数sscanf()的用法 (转载
    zjut 1179 平均数
    C++数据间隔
    C++ 保留小数
    c++ 保留小数
    c语言 保留两位小数
    c++ 如何实现保留小数并 且 不进行四舍五入
    uva-657-搜索
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/7082648.html
Copyright © 2020-2023  润新知