初学shell编程,先从shell的语法开始学起
#!/bin/bash
# hello world这个注解
# by authors rocky1996
echo "Hello World!!!"
mkdir -p /tmp/2018/09/09
其实直接在终端里面输入echo Hello World!!!效果是一样,但是在执行的效率上会有差距的。
接着是学习了shell里面的自定义变量,以及系统变量
自定义变量,例如num=100,name=rocky等,在引用的时候用$num就可以了
系统变量,例如$UID,$PWD,$1,$2,$*,$#,$?等
然后是学习了shell的if判断语句
#!/bin/bash
#by authors wujinfan
#auto if test
#if语句普通数字的操作
num1=100
num2=200
if (($num1 > $num2));then
echo "This $sum1 great $num2!"
else
echo "This $num1 little $num2!"
fi
语法上有一些要求,例如if条件后面必须有分号";"后面接着是then,最后面必须以"fi"结尾
接着是shell中已经定义好的语句,例如
1 | #-f 判断文件是否存在 if [-f filename] |
2 | #-d 判断目录是否存在 if [-d dir] |
3 | #-eq 等于,应用于:整数比较 |
4 | #-ne 不等于,应用于:整数比较 |
5 | #-lt 小于,应用于:整数比较 |
6 | #-gt 大于,应用于:整数比较 |
7 | #-le 小于或等于 应用于:整数比较 |
8 | #-ge 大于或等于 应用于:整数比较 |
9 | #-a 双方都成立(and) 逻辑表达式 -a 逻辑表达式 |
0 | #-o 单方成立(or) 逻辑表达式 -o 逻辑表达式 |
11 | #-z 空字符串 |
代码如下:
#!/bin/bash
#by authors wujinfan
#if语句判断目录是否存在
#judge dir exist
if [ ! -d /usr/2345/ ];then
sudo mkdir -p /usr/2345
echo "create success......"
else
echo "The dir is exist.Please exit......"
fi
file=/usr/2345/Hello.java
if [ ! -f $file ];then
echo "ok" >> $file
else
echo -e "\033[32m-------------------\033[1m"
cat $file
fi
可以使用/bin/bash -n if2.sh测试shell代码有没有错误
接着是和shell中的自定义变量作整合,代码如下:
#!/bin/bash
#by authors wujinfan
#if多条件测试得分
#source=80
source=$1
if [ -z $source ];then
echo "Usage: {$0 60|80}"
exit
fi
if [[ $source -gt 85 ]];then
echo "very good"
elif [[ $source -gt 75 ]];then
echo "good"
elif [[ $source -gt 60 ]];then
echo "pass"
else
echo "no pass"
fi