1.shell中的比较不是使用简单的> = <等,而是用扩展符,如下所示:

# -eq     // equal  等于
# -ne     // no equal 不等于
# -gt     // great than 大于
# -lt     // low than  小于
# ge      // great and equal 大于等于,注意没有"-"
# le      // low and equal 小于等于,注意没有“-

2.获取当前正在执行脚本的绝对路径

#dirname $0,取得当前执行的脚本文件的父目录
basepath=$(cd `dirname $0`; pwd)
echo $basepath

pwd 命令,是“print name of current/working directory”

3.打印当前目录文件

for var in `ls`
    do
       echo -----
       echo $var
    done

num=1
while [ $num -le 5 ]
do
echo "the num is $num"
let num=num+1
done

4.计算1到10的和

sum=0
num=10
#test命令 if test (表达式为真)
until test $num -eq 0
    do
#  sum=`expr $sum + $num`
#num=`expr $num - 1`
        let sum=sum+num
        let num=num-1
    done
echo "1到10的和=$sum"

5.shell数组

#Shell 是弱类型的,它并不要求所有数组元素的类型必须相同
nums=(1 3 22 33 dongxi)
nums[5]=5

#echo ${nums[3]}

#输出所有数组元素
#echo ${nums[@]}
#echo ${nums[*]}

nums[10]=5

#数组长度
#echo ${#nums[@]}
#echo ${#nums[*]}
#如果某个元素是字符串,还可以通过指定下标的方式获得该元素的长度
#echo ${#nums[4]} #6
#echo ${#nums[3]} #2

#删除数组元素
unset nums[10]
unset nums[3]
#echo ${nums[@]}

array1=(shell C++ Swift)
#数组合并 数组拼接
#new_array=(${nums[@]} ${array1[@]})
new_array=(${nums[*]} ${array1[*]})

#echo ${new_array[@]}

#删除整个数组
unset nums
echo ${nums[@]}

6.shell函数

count=1
hello(){
    echo "hello boy~  It's our $count meeting"
    let count=count+1
}

#函数调用, 不需要带()
hello
hello
hello

7.case用法示例

#!bin/bash
case $1 in
1)
    echo "you choice is 1";;
2)
    echo "you choice is 2";;
*)
    echo "you choice is others";;
#关键字esac结束
esac

调用时候传入参数,如sh case.sh 1

8.break命令和continue命令

#break命令 可以使用户从循环体中退出来
#continue命令 跳过循环
num=4
while [ $num -lt 8 ]
    do
        if test $num -eq 6
        then
             let num=num+1
#            break
             continue
        else
            echo $num
            let num=num+1
        fi
    done

9.加减乘除exprlet

#let命令用于指定算术运算,即 let expretion。
#例子:计算(2+3)×4的值
let a=(2+3)*4
echo $a

#运算符号和参数之间要有空格分开
expr `expr 2 + 3` \* 4

let b=9/3
echo $b

10.字符串截取

#字符串截取 从字符串左边开始计数,长度
url="www.baidu.com"
#echo ${url:4:5}

name="name:lidongxi"
 #省略 length,截取到字符串末尾
#echo ${name:5}

#从右边开始计数,截取
fromRight="c.lidongxi.net"
#echo ${fromRight:0-3:3}
 #省略 length,直接截取到字符串末尾
#echo ${fromRight:0-3}

#从指定字符(子字符串)开始截取
specialChars="http://lidongxi"
#echo ${specialChars#http://}
#echo ${specialChars#*http://}

#使用 % 截取左边字符
url="http://c.biancheng.net/index.html"
echo ${url%/*} #结果为 http://c.biancheng.net
echo ${url%%/*} # http: