简单而强大的shell

第一行:

#!/bin/bash

使脚本具有执行权限 :

 chmod +x ./test.sh

**执行脚本: **

./test.sh

定义变量:

variableName="value"

“=”号左右无空格,变量首个字符必须为字母(a-z,A-Z)

定义其他变量

只读变量:readonly variableName
删除变量:unset variableName

使用变量

echo ${your_name}

循环:


    for skill in Ada Coffe Action Java 
    do
    echo " ${skill}"
    done

特殊变量

特殊变量列表

特殊变量列表

转义字符

echo -e "\n" echo -E " \n" 禁止转义,默认不转义

-e 表示对转义字符进行替换, 不使用 -e 选项,将会原样输出

命令替换 命令替换是指Shell先执行命令,将输出结果暂时保存,在适当的地方输出

`command`

    #!/bin/bash
    DATE=`date`
    echo "Date is $DATE"
    USERS=`who | wc -l`
    echo "Logged in user are $USERS"

运算


    #!/bin/bash
    val=`expr 2 + 2`
    echo "Total value : $val"
    Total value : 4

2+2 是不对的,必须写成 2 + 2完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。

乘号(*)前边必须加反斜杠(\)才能实现乘法运算;

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

#****
或者
把这一段要注释的代码用一对花括号括起来,定义成一个函数,没有地方调用这个函数,这块代码就不会执行,达到了和注释一样的效果。

获取字符串长度

string="abcd"
echo ${#string} #输出 4

提取子字符串

string="alibaba is a great company"
echo ${string:1:4} #输出liba

数组

bash支持一维数组(不支持多维数组)用括号来表示数组,数组元素用“空格”符号分割开


    array_name=(value0 value1 value2 value3)
    ${array_name[index]}   #读取数组元素值
    ${array_name[*]}    #获取数组中的所有元素
    ${array_name[@]}    # 获取数组中的所有元素
    length=${#array_name[@]} #取得数组元素的个数
    lengthn=${#array_name[n]} #取得数组单个元素的长度

if else 语句


    if [ expression ]
    then
       Statement(s) to be executed if expression is true
    fi


    if [ expression ]
    then
       Statement(s) to be executed if expression is true
    else
       Statement(s) to be executed if expression is not true
    fi

while 循环


    COUNTER=0
    while [ $COUNTER -lt 5 ]
    do
        COUNTER='expr $COUNTER+1'
        echo $COUNTER
    done

函数


    #!/bin/bash
    # Define your function here
    Hello () {
       echo "world"
    }
    # Invoke your function
    Hello

在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数… 重定向


    >  #输出重定向会覆盖文件内容
    >> # >> 追加到文件末尾

Shell 中包含脚本可以使用


    . filename
    或者
    source filename



版权申明

知识共享许可协议
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。 转载文章请注明原文出处。

天道酬勤
评分4.8/5 based on 20