zoukankan      html  css  js  c++  java
  • shell编程

    Shell

    1.新建一个脚本

    新建一个xxx.sh文件

    #!/bin/bash脚本标识

    1.变量

    1.1定义变量

    myName=”小白”

    注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

    • 首个字符必须为字母(a-z,A-Z)。
    • 中间不能有空格,可以使用下划线(_)。
    • 不能使用标点符号。

    使用变量:$变量名 为了区分,我们可以使用${变量名}

    readonly  定义一个只读的变量,不能重新赋值

    1.2删除变量

    使用 unset 命令可以删除变量。语法:

    unset variable_name

    变量被删除后不能再次使用。unset 命令不能删除只读变量。

    实例

    #!/bin/bash

    myUrl="http://www.runoob.com"

    unset myUrl

    echo $myUrl

    2.Shell 字符串

    字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。

    单引号

    str='this is a string'

    单引号字符串的限制:

    单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;

    单引号字串中不能出现单引号(对单引号使用转义符后也不行)。

    双引号

    your_name='qinjx'

    str="Hello, I know your are "$your_name"! "

    双引号的优点:

    • 双引号里可以有变量
    • 双引号里可以出现转义字符

    3.运算符

    下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20:

    运算符

    说明

    举例

    +

    加法

    `expr $a + $b` 结果为 30。,可以是数值型字符串

    -

    减法

    `expr $a - $b` 结果为 -10。

    *

    乘法

    `expr $a * $b` 结果为  200。

    /

    除法

    `expr $b / $a` 结果为 2。

    %

    取余

    `expr $b % $a` 结果为 0。

    =

    赋值

    a=$b 将把变量 b 的值赋给 a。

    ==

    相等。用于比较两个数字,相同则返回 true。

    [ $a == $b ] 返回 false。

    !=

    不相等。用于比较两个数字,不相同则返回 true。

    [ $a != $b ] 返回 true。

    -gt

    相当于>

    [ $a -gt $b ] 返回 false

    -lt

    相当于小于

    [ $a -gt $b ] 返回 true

    !

    [ !true ] 返回false

    -o

    [ true -o false ] 返回true

    -a

    [ true -o false ] 返回false

    注意:条件表达式要放在方括号之间,并且要有空格,例如[$a==$b] 是错误的,必须写成 [ $a == $b ]

    运算符除了使用expr还可以通过这种方式

    #!bin/bash

    a=10

    b=20

    echo $((($a+$b)*$a))

     

     

    #!/bin/bash

    a=10

    b=20

    c=$(($a+$b))

    echo $c

    ((d=$a+$b))

    echo $d

    f=`expr $a + $b`   (反引号)

    echo $f

     

    4.for循环

    dodone之间的命令称为循环体

    举例:

    1.第一种

    #!bin/bash

    for i in {1..10}

    do

    echo haha

    done

    2.第二种

    for file in `ls /etc`; do

    echo $file

    done

    3.第三种

    #!bin/bash

    for i in $(ls /test)

    do

    echo $i

    done

    4.第四中

    #!bin/bash

    for((i=0;i<20;i++))

    do

    echo $i

    done

    5.自增长

    1.第一种

    for i in {1..10}

    do

    echo $i

    let "i+=1"

    Done

    2.第二种

    #!/bin/bash

     

    for i in {1..10}

    do

    echo $i

    ((i++))

    done

    6.while循环

    举例:

    #!/bin/bash

    sum=1

    i=0

    while(( i <= 2 ))

    do

      let "sum*=10"

      let "i+=1"

    done

    echo "sum=$sum"

     

    7.数组

    定义数组

    方式1arr=()

    方式2: arr=(value1 value2 value3)   (这种方式带值)

    注意:往数组里添加值,数组的长度自动增长

    获取数组的长度:${#arr[*]}

    遍历数组

    #!/bin/bash

    arr=(value value1 value2)

    arr[0]=1

    arr[1]=2

    arr[2]=3

    arr[3]=4

    for i in ${arr[*]}; do

    echo $i

    done

     

    8.条件语句

    1.if else

    #!/bin/bash

    a=1

    b=2

    if [ $a -gt $b ]

    then

    echo "a大于b"

    else

    echo "a小于b"

    fi

     

    2.if elif

    #!/bin/bash

    if [ 1 -gt 2 ];then

    echo "1>2"

    elif [ 2 -gt 1 ];then

    echo "2>1"

    else

    echo "什么鬼"

    fi

    If [ -f ]判断是否是文件

    If [ -d ]判断是否是文件夹

    9.注释:

    单行:#

    多行:举例:

    #!/bin/bash

    :<<!

    echo "hehe"

    echo "aaaa"

    !

    echo "haha"

     

    #!/bin/bash

    : '   (:之间有空格)

    echo "hehe"

    echo "aaaa"

    '

    echo "haha"

  • 相关阅读:
    处理缺失值
    数据清理
    数据聚合
    ajax动态生成table
    MangeEmpHashMap
    Arraylist的雇员管理操作
    jsp获取一个对象和list对象
    Controller比较两个对象discs、outlets中的元素是否相等。相同则相应的checkbox为checked
    限制input text输入的类型(数字,字母,小数点)
    联合主键的映射运用
  • 原文地址:https://www.cnblogs.com/wzlbigdata/p/8392622.html
Copyright © 2011-2022 走看看