shell简介
注释
变量
定义变量:
number=10
echo $number
a='10'
echo a
b="$number"
echo b
c=`date`
c2=$(date)
//输出当前时间
使用变量:
只读变量:
readonly 变量名
删除变量:
unset 变量名
数组
#定义一个数组
arr=(a b c d e f)
#给数组的元素赋值
arr[0]=A
#获取数组中的元素
echo ${arr[0]}
#获取数组的长度
echo "数组的长度${#arr[*]}"
运算符
#整数相加
num1 = `expr 2 + 2`
echo "整数2+2的结果为$num1"
#整数相减
num2 = `expr 2 - 2`
echo "整数2-2的结果为$num2"
#整数相乘
num3 = `expr 2 \* 2`
echo "整数2*2的结果为$num3"
#变量相加
a=10
b=20
num4=`expr $a + $b`
echo "变量a和变量b相加的结果为$num4"
#赋值
c=30
num5="${c}"
echo "变量c的值赋值给num5,打印num5的值$num5"
#自增
e=1
((e++))
echo "变量e为1,自增之后。结果为$e"
a="aaa"
b="bbb"
#判断两个字符串是否相等
[ "${a}" = "${b}" ]
echo "判断两个字符串是否相等"
#判断两个字符串是否不相等
[ "${a}" != "${b}" ]
echo "判断两个字符串是否不相等"
#判断字符串的长度是否为0
[ -z "${a}" ]
echo "判断字符串的长度是否为0"
#判断字符串的长度是否不为0
[ -n "${a}"]
echo "判断字符串的长度是否不为0"
#判断字符串是否为空
[ $"${a}" ]
#获取字符串的长度
echo "获取字符串的长度 ${#a}"
只支持数字比较,不支持字符串比较
a=10
b=20
#比较两个数是否相等
[ "${a}" -eq "${b}" ]
echo "a和b两个数字是否相等:$?"
#取反
[ ! "${a}" -eq 10]
#或运算 -o
[ "${a}" -lt 20 -o "${b}" -gt 100 ]
#a<20或b>100
#与运算 -a
[ "${a}" -lt 20 -a "${b}" -gt 100 ]
#a<20且b>100
#&&
[[ "${a}" -lt 100 && "${b}" -gt 100 ]]
#||
[[ "${a}" -lt 100 || "${b}" -gt 100 ]]
语句
判断:
#我要查找一个进程:如果这个进程存在,就打印true
if [ $(ps -ef | grep -c "ssh") -gt 1]
then
echo "true"
fi
v = "czbk"
case "${v}" in
"czbk")
echo "1"
;;
"baidu")
echo "百度"
esac
for t in A B C D E F
do
echo "${t}"
done
函数
method(){
echo "函数执行了"
}
#有参数无返回值的方法
method2(){
echo "接收到的第一个参数$1"
echo "接收到的第二个参数$2"
}
method2 1 2
#有参数有返回值的方法
compute() {
return $(($1+$2))
}
compute 10 20