zoukankan      html  css  js  c++  java
  • linux shell 基本语法

    原创博文,转载请标明出处--周学伟 http://www.cnblogs.com/zxouxuewei/tag/

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。

    Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),等等。不同的Shell语言的语法有所不同,所以不能交换使用。每种Shell都有其特色之处,基本上,掌握其中任何一种 就足够了。在本文中,我们关注的重点是Bash,也就是Bourne Again Shell,由于易用和免费,Bash在日常工作中被广泛使用;同时,Bash也是大多数Linux系统默认的Shell。在一般情况下,人们并不区分 Bourne Shell和Bourne Again Shell,所以,在下面的文字中,我们可以看到#!/bin/sh,它同样也可以改为#!/bin/bash。

    一.基本语法
      1.变量:export 变量全局

    #!/bin/bash
    num=$1
    export num echo $num

    2.条件判断

    if [[ condition ]]; then
        #statements
    fi
    #!/bin/bash
    if
    [[ $1 == 1 ]]; then echo $1 else echo "value is not 1" fi

    常用的判断参数列表

    3.case分支

    #!/bin/bash
    
    case $1 in
        1)
            echo "the value is 1";;
        2)
            echo "the value is 2";;
        3)
            echo "the value is 3";;
        4)
            echo "the value is 4";;
        *)
            echo "defult value"
    esac

    4.循环语句for

    #方法1
    for
    (( i = 0; i < 10; i++ )); do #statements done

    #方法2
    for i in words; do
        #statements
    done

    例程:

    #!/bin/bash
    
    for (( i = 0; i < 10; i++ )); do
        echo "the value is $i"
    done

    5.while循环

    while [[ condition ]]; do
        #statements
    done

    例程:

    #!/bin/bash
    
    i=$1
    
    while [[ $i != 0 ]]; 
    do
        echo "value is $i"
        let "i=i-1"
    done

    6,函数

    • 1、必须在调用函数地方之前,声明函数,shell脚本是逐行运行。不会像其它语言一样先预编译。一次必须在使用函数前先声明函数。
    • 2、total=$(fSum 3 2); 通过这种调用方法,我们清楚知道,在shell 中 单括号里面,可以是:命令语句。 因此,我们可以将shell中函数,看作是定义一个新的命令,它是命令,因此 各个输入参数直接用 空格分隔。 一次,命令里面获得参数方法可以通过:$0…$n得到。 $0代表函数本身。
    • 3、函数返回值,只能通过$? 系统变量获得,直接通过=,获得是空值。其实,我们按照上面一条理解,知道函数是一个命令,在shell获得命令返回值,都需要通过$?获得。
    #!/bin/bash
    
    function add()
    {
        echo $1 $2
        return $(($1+$2))
    }
    
    value=$(add $1 $2);
    echo $value,$?

    7.数组

        # 取得数组元素的个数
        length=${#array_name[@]}
        # 或者
        length=${#array_name[*]}
        # 取得数组单个元素的长度
        lengthn=${#array_name[n]}

    读取数组元素值的一般格式是:

    ${array_name[index]}
    valuen=${array_name[2]}

    例程

    #!/bin/bash
    
    name=(a b c d e f g)
    length=${#name[@]}
    echo $length
    
    for (( i = 0; i < $length; i++ )); do
        echo valuen=${name[$i]}
    done
  • 相关阅读:
    MongoDB学习笔记一—简介
    css之定位
    Docker私有仓库1
    Docker安装目录
    Docker 安装完启动服务报错
    Ambari安装组件出错
    Rancher安装使用
    Kettle中spoon.sh在使用时报错
    Kettle jdbc连接hive出现问题
    kettle在linux启动spoon.sh报错
  • 原文地址:https://www.cnblogs.com/zxouxuewei/p/6393092.html
Copyright © 2011-2022 走看看