• Shell编程入门


    Shell编程入门

    一,变量赋值及算术运算

    // 演示样例代码:

    a=1
    echo $a
    let b=$a+1
    echo $b
    c=$[a+b]
    echo $c
    d=$[c*2]
    echo $d
    let e=d*2
    echo $e
    f=$[e%5]
    echo $f


    // 注意“=”号两边不能有空格
    // 以上代码片段将输出:
    1
    2
    3
    6
    12
    2

    二,数组

    1,赋值

    // 演示样例代码

    declare -a arr1=(1 2 3 4)
    echo ${arr1[0]}
    arr2=("China" "Japan" "Korea")
    echo ${arr2[0]}
    arr3[0]=100
    echo ${arr3[0]}


     

    // 以上代码片段将输出:
    1
    China
    100

    2。遍历数组

    // 演示样例代码

    arr2=("China" "Japan" "Korea")
    for v in ${arr2[@]};do
     echo ${v}
    done



    // 以上代码片段将输出:
    China
    Japan
    Korea

    // 注:${arr2[@]}中的@符号表示元素列表


    三。条件推断

    1。整数比較

    -lt,小于
    -le,小于等于
    -eq。等于
    -ge,大于等于
    -gt,大于
    -ne。不等于

    // 演示样例代码:

    a=1
    b=2
    if [ $a -lt $b ];then
     echo "a<b is true"
    else
     echo "a<b is false"
    fi
    c=3
    if [ $a -lt $b ] && [ $c -gt $b ];then
     echo "a<b && c>b is true"
    else
     echo "a<b && c>b is false"
    fi


     

    // 以上代码片段将输出:
    a<b is true
    a<b && c>b is true


    2。字符串比較

    s1 = s2
    s1 != s2
    s1 > s2
    s1 < s2
    -n s1。s1不为null,长度大于零
    -z s1。s1为null。长度为零

    // 演示样例代码:

    s1="China"
    s2="China"
    if [ $s1=$s2 ];then
     echo "s1=s2 is true"
    else
     echo "s1=s2 is false"
    fi


     

    // 以上代码片段将输出:
    s1=s2 is true


    3,文件属性推断

    -a file1 :file1 存在
    -d file1 :file1存在并是一个文件夹
    -e file1 :file1 存在,同-a
    -f file1 :file1 存在而且是一个常规的文件(不是文件夹或者其它特殊类型文件)
    -r file1 :有读的权限
    -s file1 :文件存在且不为空
    -w file1 :有写的权限
    -x file1 :有运行的权限,或者对于文件夹有search的权限
    -N file1 :在上次读取后,文件有修改
    -O file1 :own所属的文件
    -G file1 :group所属的文件
    file1 -nt file2 :file1 比 file2 更新,以最后更新时间为准
    file1 -ot file2 :file1 比 file2 更旧 ,以最后更新时间为准

    // 演示样例代码:

    if [ -d "/home" ];then
     echo "/home dir exists"
    else
     echo "/home dir not exists"
    fi


     

    // 以上代码片段将输出:
    s1=s2 is true
    /home dir is exists


    四,函数定义

    函数參数示意:
    $0:表示函数名称
    $1:第1个參数
    $2:第2个參数

    // 演示样例代码:

    a=1
    function func1() {
     local b=2
     return $[a+b+$1]
    }
    func1 3
    b=$?

    echo $b;


     

    // 以上代码片段将输出:
    6

    注意:
    Shell语言函数返回值不同于传统语言,Shell中的返回值一般是指命令运行后的返回值,成功0,失败1。
    以上演示样例代码中有return语句。说明函数自己定义了返回值。所以能够用 $?

    查看这个返回值。
    a为全局变量,b为局部变量。

  • 相关阅读:
    Elasticsearch 搜索的评分机制
    Elasticsearch-mapper 基于注解方式生成mapping(2.0以上)
    Elasticsearch 与 Mongodb 数据同步问题
    Hadoop入门进阶课程6--MapReduce应用案例
    Hadoop入门进阶课程5--MapReduce原理及操作
    Hadoop入门进阶课程4--HDFS原理及操作
    Hadoop入门进阶课程3--Hadoop2.X64位环境搭建
    使用命令行备份指定文件夹并保留最新N份
    Hadoop入门进阶课程2--Hadoop2.X 64位编译
    Hadoop入门进阶课程1--Hadoop1.X伪分布式安装
  • 原文地址:https://www.cnblogs.com/jhcelue/p/6940482.html
Copyright © 2020-2023  润新知