文件目录属性判断 [ -f file ] 判断是否为普通文件,且存在 [ -d dir ] 判断是否为目录,且存在 [ -e file ] 判断文件或目录是否存在 [ -r file ] 判断文件是否可读 [ -w file ] 判断文件是否可写 [ -x file ] 判断文件是否可执行* [ ! -f file ] 取反 表示不存在
if的特殊用法 if [ -z "$a" ] 表示当变量a的值为空 if [ -n "$a" ] 表示当变量a的值不为空 if grep -wq 'word' file;then..... if可以结合其他命令使用,本列表示 若file文件中有包含word的行 if [ ! -e file ] ; then.... 表示文件不存在的时候执行then.... if (($a<1)) ; then.....等同于 if [ $a -lt 1 ];then..... [ ] 中部支持 < ,>, >=,<=,!=符号 可以使用 lt gt le ge ne eq
case 用法
格式
case 变量名 in
value1)
command
;;
value2)
command
;;
.*)
command
;;
esac
在case程序中,可以在条件中使用 | 逻辑关系
条件1|条件2)
;;
case 用法举例
#!/bin/bash
read -p "please input a number :" n # 输入并捕获
if [ -z "$n" ]
then
echo "please input a number."
exit 1
fi
n1=echo $n|sed 's/[0-9]//g'
#将变量n中全部数字替换为空然后赋值給n1
if [ ! -z "$n1" ] # 判断n1是否为空 此举判断输入是否为纯数字
then
echo "please input a number."
exit 1
fi
if [ $n -lt 60 ] &&[ $n -gt 0 ]
then
tag=1
elif [ $n -gt 60 ] && [ $n -lt 80 ]
then
tag=2
elif [ $n -gt 80 ] && [ $n -lt 90 ]
then
tag=3
elif [ $n -gt 90 ] && [ $n -le 100 ]
then
tag=4
else
tag=0
fi
case $tag in 1) echo bjige ;; 2) echo jige ;; 3) ehco lianghao ;; 4) echo youxiu *) echo "please input number rage 1-100" esac
for 循环
语法
for 变量名 in 条件;do.....;done
举例
#!/bin/bash
sum =0
for i in seq 1 100
do
sum=$[$sum+$i]
done
echo sum
举例
#!/bin/bash
cd /etc
for a in ls /etc/
do
if [ -d $a ]
then
ls $a
fi
done