概述
目录
前言
Sheel 条件测试
一、数值比较
二、文件测试[操作符 文件或目录]
三、字符串比较[“字符串”=“字符串”]
四、and 和 or
五、流程控制:if
六、模式匹配:case
前言
Sheel 条件测试
一、数值比较
示例:
测试长度
[root@mycat ~]# pass=1231
[root@mycat ~]# echo ${#pass}
4
条件表达式
#!/bin/bash
read -p "Please enter password:" ps
if [ ${#ps} -lt 7 ]
then
echo "ni de mima tai duan!"
else
echo "ni de mi ma zhen chang!"
fi
二、文件测试[操作符 文件或目录]
#!/bin/bash
read -p "qing shu ru beifen mu lu: " dir1
if [ -d $dir1 ] //判断目录是否为真
then echo "$dir1 存在可以备份"
else echo "$dir1 不存在无法备份"
fi
三、字符串比较[“字符串”=“字符串”]
#!/bin/bash
read -p "你确定要升级这件装备吗?" select
if [ "$select" = "yes" ]
then echo “装备升级开始???”
else echo “感谢你,欢迎下次光临”
fi
四、and 和 or
#!/bin/bash
read -p "请输入你的密码: " pass
if [ ${#pass} -gt 7 ] && [[ ${pass} =~ [a-z] ]]
&& [[ ${pass} =~ [A-Z] ]]
&& [[ ${pass} =~ [@!_] ]]
then echo "你的PASSWORD太复杂!!"
else echo "你的密码太简单!!"
fi
~
五、流程控制:if
#!/bin/bash
read -p "input username:" name
id $name &> /dev/null /*输出信息扔入垃圾桶*/
if [ $? -ne 0 ]; then /*如果没有这个用户*/
useradd $name
fi
#!/bin/bash
##################if then
read -p "input username:" name
id $name &> /dev/null
if [ $? -ne 0 ];then
if id $name &> /dev/null;then
echo "用户已存在"
else
useradd $name
echo "123456" | password --stdin $name &> /dev/null
echo "$name create finshed,the password is 123456"
fi
fi
#!/bin/bash
#### if then
####elif
hour=`date +%H`
if [ $hour -ge 6 -a $hour -le 10 ];then
echo "This is morning"
elif [ $hour -ge 11 -a $hour -le 13 ];then
echo "This is noon"
elif [ $hour -ge 14 -a $hour -le 18 ];then
echo "This is afternoon"
else
echo "This is night"
fi
#!/bin/bash
####if then
# else
# if then
# else
# fi
# fi
####################嵌套
read -p "Input username:" name
id $name &> /dev/null
if [ $? -eq 0 ];then
echo "用户$name 存在"
read -p "请输入你的密码:" pass
if [ ${#pass} -le 7 ];then
# echo "$pass " | passwd --stdin $name
echo "密码太简单"
read -p "请重新输入你的密码:" pass
# echo "$name 用户密码是$pass"
if [ ${#pass} -ge 7 ];then
# && [[ ${pass} =~ [a-z] ]] && [[ ${pass} =~ [A-Z] ]] && [[ ${pass} =~ [@!_] ]];then
echo "密码设置成功"
echo "$name 你的密码是:$pass"
else
echo "请使用大小写字母以及“@!_ “字符"
fi
else
echo "你的密码太简单,请重新输入你的密码:" pass
# echo "$name 用户密码是$pass
# echo "$pass " | passwd --stdin $name
fi
else
useradd $name
echo "$name create finished"
fi
~
"ifthen.sh" 34L, 873C 21,5-3
六、模式匹配:case
#!/bin/bash
#name
#time
# IF 写法
read -p "请输入删除用户:" user
read -p "are you sure?[y/n]:" action
if [ "$action" = "y" -o "action" = "Y" ];then
userdel -r $user
echo "$user is delect!"
else
fi
#case 模式匹配
read "请输入你的用户名:" user
read "确认要删除吗?[yes/no]:" action
case "action" in
y|Y|YES|yes)
userdel -r $user
echo "$user is delected!";;*)
echo "thank you";;
esac
~
~
~
#!/bin/bash
web1=192.168.238.131
web2=192.168.238.129
#读取用户输入
read -p "请输入你要登录的IP:" num
case $num in
1)
ssh volf@$web1
;;
2)
ssh volf@$web2
;;
*)
echo '12'
esac
最后
以上就是风趣发带为你收集整理的Shell 编程判断(三)Sheel 条件测试的全部内容,希望文章能够帮你解决Shell 编程判断(三)Sheel 条件测试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复