壹:>按文件类型进行判断 。
参数说明
-e 文件名如果文件存在则为真
-r 文件名如果文件存在且可读则为真
-w 文件名如果文件存在且可写则为真
-x 文件名如果文件存在且可执行则为真
-s 文件名如果文件存在且至少有一个字符则为真
-d 文件名如果文件存在且为目录则为真
-f 文件名如果文件存在且为普通文件则为真
-c 文件名如果文件存在且为字符型特殊文件则为真
-b 文件名如果文件存在且为块特殊文件则为真
>按文件类型判断 。
>两个文件之间进行比较 。 -nt . -ot . -ef
ln source_file target_file(创建硬连接)
>两个整数的判断 。
参数说明
-eq (equal的缩写)等于则为真
-ne (not equal的缩写)不等于则为真
-gt (greater than的缩写)大于则为真
-ge (greater&equal的缩写)大于等于则为真
-lt (lower than的缩写)小于则为真
-le (lower&equal的缩写)小于等于则为真
>字符串的判断。 -z,-n(判空) == ,!=(判相等)
参数说明
== 等于则为真
!= 不相等则为真
-z 字符串字符串的长度为零则为真
-n 字符串字符串的长度不为零则为真
例: [ "$aa" == "$bb" ] && echo yes || echo no 》no
>多重条件判断 。 -a(逻辑与) -o(逻辑或)!(逻辑非)
例: [ -n "$aa" -a "$aa" -gt 23 ] && echo yes || echo no 判断aa是否存在并且是否大于23
贰:两种判断格式
。 test -e /root/install.log
。 [ -e /root/install.log ] 备注:[ *** ] 两边留空格
说明:true=0 。false=1
三目判断式
[ -d /root/ ] && echo "yes" || echo "no"
》第一个判断为真时打印yes,否则打印no
叁:流程控制 if
〉单分支if语句
语法:if [ 条件判断式 ]
then
程序
fi
linux命令复习
env 输出环境变量
grep 行提取工具
cut 列提取工具 cut -d "=" -f 2 (以“=”分割当前字符串,并获取第二列)
awk 列提起工具 awk '{print $5}' (获取当前字符串的的第五个字符串)
df -h 获取分区使用情况
例如:获取当前用户是否为root用户
#!/bin/bash
test=$(env | grep USER | cut -d "=" -f 2)
if [ "$test" == "root" ]
then
echo "is root user"
fi
例如: 获取分区的使用情况
#!/bin/bash
#统计分区使用情况
rate=$(df -h | grep "/dev/disk1s1" | awk '{print $5}' | cut -d "%" -f1)
if [ "$rate" -ge 80 ]
then
echo "当前分区使用情况很大了"
fi
——————————————————————————————
>双分支if条件语句 . [ 条件判断式] && echo yes || echo no
linux命令复习
read -t 30 -p "promt" name . 读取用户输入结果 。-t 等待时间 -p 提示信息
ps aux. 获取当前运行进程
语法
if [ 条件判断式 ]
then
条件成立时,执行的程序
else
条件不成立时,执行的程序
fi
>多分支if条件语句
语法
if [ 条件判断式1 ]
then
当条件1成立时,执行程序1
elif [ 条件判断式2 ]
then
当条件2成立时,执行程序2
else
当所有条件都不成立时
fi
肆:for 循环
语法:
for var in item1 item2 ... itemN
do command1
command2
done
例如:for loop in 1 2 3 4 5 do echo "The value is: $loop" done
伍:while 语句
while condition
do
command
done
例如
int=1
while(( $int<=5 ))
do
echo $int
let "int++"
done
使用中使用了 Bash let 命令,它用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量
陆:until 循环
until 循环执行一系列命令直至条件为 true 时停止。
until 循环与 while 循环在处理方式上刚好相反。
语法:
until condition
do
command
done
柒:case
Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。
语法:
case 值 in
模式1)
command
;;
模式2)
command1
;;
esac
例如: echo '输入 1 到 4 之间的数字:' echo '你输入的数字为:' read aNum
case $aNum in
1)
echo '你选择了 1'
;;
2)
echo '你选择了 2'
;;
3)
echo '你选择了 3'
;;
4)
echo '你选择了 4'
;;
*)
echo '你没有输入 1 到 4 之间的数字'
;;
esac
捌:跳出循环
break命令
break命令允许跳出所有循环(终止执行后面的所有循环)。
#!/bin/bash
while :
do
echo -n "输入 1 到 5 之间的数字:"
read aNum
case $aNum in
1|2|3|4|5)
echo "你输入的数字为 $aNum!"
;;
*)
echo "你输入的数字不是 1 到 5 之间的! 游戏结束"
break
;;
esac
done
continue
continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。
#!/bin/bash
while :
#无限循环
do
echo -n "输入 1 到 5 之间的数字: "
read aNum #读取当前用户输入的字符,并赋予该变量
case $aNum in
1|2|3|4|5)
echo "你输入的数字为 $aNum!"
;;
*)
echo "你输入的数字不是 1 到 5 之间的!"
continue
echo "游戏结束"
;;
esac
done
网友评论