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.加减乘除expr
和let
#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: