if判断文件、目录属性
#!/bin/bash
f="/tmp/filename"
if [ -f $f ]
then
echo $f exist
else
touch $f
fi
# -f 判断是不是普通文件及是否存在
#!/bin/bash
f="/tmp/filename"
if [ -d $f ]
then
echo $f exist
else
touch $f
fi
# -d 判断是不是目录及是否存在
#!/bin/bash
f="/tmp/filename"
if [ -e $f ]
then
echo $f exist
else
touch $f
fi
# -e 判断 文件或目录 是否存在
#!/bin/bash
f="/tmp/aminglinux"
if [ -r $f ]
then
echo $f "可读"
else
touch $f
fi
#-r判断是否可读
#-w判断是否可写
#-x判断是否可执行
#偷懒写法
f="/tmp/langman"
[ -f $f ] && rm -f $f
if [ -f $f ]
then
rm -f $f
fi
if判断的一些特殊用法
判断变量的值,是否为空
if [ -z "$a" ]
vim if1.sh
if[
n=`wc -l /tmp/lalal`
if[ -z "$n" ]
then
echo 错误
exit
elif [ $n -gt 100 ]
then
echo hello word!
fi
判断文件内容是否不为空
if [ -n "$n" ]
CASE 判断
case name in
value1)
;;
value2)
;;
value3)
;;
小案例
#!/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'`
if [ -n "$n1" ]
then
echo "please input a number."
exit 1
fi
if [$n -lt 60 ] && [ $n -ge 0 ]
then
tag=1
elif [ $n -ge 60 ] && [ $n -lt 80 ]
then
tag=2
elif [ $n -ge 80 ] && [ $n -lt 90 ]
then
tag=3
elif [ $n -ge 90 ] && [ $n -le 100 ]
then
tag=4
else
tag=0
fi
case $tag in
1)
echo "not ok"
;;
2)
echo "ok"
;;
3)
echo "ook"
;;
4)
echo "oook"
;;
*)
echo "the number range is 0-100."
;;
esac
for循环
累加1-100的和
#!/bin/bash
sum=0
for i in `seq 1 100`
do
sum=$[$sum+$i]
echo $i
done
echo $sum
操作文件,列一下子目录
#!/bin/bash
cd /etc/
for a in ls /etc/
do
[ -d $a ] && ls $a
done
常用的for循环
for i in `seq 1 3`; do echo $i ; done
for会以空格或者回车作为分隔符号!