企业网站博客上如何推广,wordpress 预览插件,用ps可以做网站吗,网站建设找伟杨科技目录
测试 test测试文件的表达式 是否成立
格式
选项
比较整数数值
格式
选项
字符串比较
常用的测试操作符
格式
逻辑测试
格式
且 #xff08;全真才为真#xff09; 或 #xff08;一真即为真#xff09;
常见条件
双中括号
[[ expression ]] 用法
全真才为真 或 一真即为真
常见条件
双中括号
[[ expression ]] 用法 { } 可以将多个命令组合在一起批量执行
if语句的结构
分支结构
单分支
双分支
多分支
举例
单分支
判断是否为超级管理员
编辑 判断主机连通性
多分支
考试成绩
case
格式
字符
例子
考试成绩
石头剪刀布
echo
date
seq 测试 test测试文件的表达式 是否成立
格式
1.test 条件表达式
2. [ 条件表达式 ] 注意[ ]空格否则会失败
3.[ 操作符 文件或目录 ]
选项
-d测试是否为目录Directory
[rootlocalhost ~]# test -d /etc/
[rootlocalhost ~]# echo $?
0-e测试目录或文件是否存在Exist
[rootlocalhost ~]# test -e /etc
[rootlocalhost ~]# echo $?
0
[rootlocalhost ~]# test -e /fwf
[rootlocalhost ~]# echo $?
1-a测试目录或文件是否存在Exist
[rootlocalhost ~]# test -a /etc
[rootlocalhost ~]# echo $?
0
[rootlocalhost ~]# test -a /fwf
[rootlocalhost ~]# echo $?
1a和e的区别在于a不可以取非
[rootlocalhost ~]#[ ! -e /etc/shadow ]
[rootlocalhost ~]#echo $?
1
[rootlocalhost ~]#[ ! -a /etc/shadow ]
[rootlocalhost ~]#echo $?
0
-f测试是否为文件File
[rootlocalhost ~]# test -f /etc/init.d
[rootlocalhost ~]# echo $?
1
[rootlocalhost ~]# test -f /etc/yum.conf
[rootlocalhost ~]# echo $?
0-r测试当前用户是否有权限读取Read
-w测试当前用户是否有权限写入Write
-x测试当前用户是否有权限执行eXcute
root执行权限别人没有root也没有别人有root也有
[rootlocalhost 123]# ll /etc/shadow
----------. 1 root root 1266 11月 8 13:21 /etc/shadow
[rootlocalhost 123]# [ -r /etc/shadow ]
[rootlocalhost 123]# echo $?
0
#实际效果不是表面显示注意root权限
[rootlocalhost 123]# [ -x /etc/shadow ]
[rootlocalhost 123]# echo $?
1
#root执行权限别人没有root也没有别人有root也有
[rootlocalhost 123]# -L: 测试是否为软连接文件
[rootlocalhost /]# test -L /etc/localtime
[rootlocalhost /]# echo $?
0
[rootlocalhost /]# test -L /etc/yum.conf
[rootlocalhost /]# echo $?
1
[rootlocalhost /]# 测试是否成功使用 $? 返回值0为正确非0不正确 比较整数数值 格式
[ 整数1 -操作符 整数2 ] 公式 选项
-eq第一个数等于Equal第二个数
-ne第一个数不等于Not Equal第二个数
-gt第一个数大于Greater Than第二个数
-lt第一个数小于Lesser Than第二个数
-le第一个数小于或等于Lesser or Equal第二个数
-ge第一个数大于或等于Greater or Equal第二个数
[rootlocalhost /]# a6
[rootlocalhost /]# b9
[rootlocalhost /]# [ $a -eq $b ]
[rootlocalhost /]# echo $?
1
[rootlocalhost /]# [ $a -le $b ]
[rootlocalhost /]# echo $?
0
[rootlocalhost /]# 字符串比较 常用的测试操作符
字符串内容相同
!字符串内容不同! 号表示相反的意思
-z字符串内容为空
-n: 字符是否存在 格式
[ 字符串1 字符串2 ] 是否相同
[rootlocalhost /]# qwexuyucheng
[rootlocalhost /]# rtytaishuail
[rootlocalhost /]# [ $qwe $rty ]
[rootlocalhost /]# echo $?
1
[rootlocalhost /]# rtyxuyucheng
[rootlocalhost /]# [ $qwe $rty ]
[rootlocalhost /]# echo $?
0
[rootlocalhost /]# [ 字符串1 ! 字符串2 ] 是否不相同
[rootlocalhost /]# qwexuyucheng
[rootlocalhost /]# rtytaishuail
[rootlocalhost /]# [ $qwe ! $rty ]
[rootlocalhost /]# echo $?
0[ -z 字符串 ] 是否为空
[rootlocalhost /]# rtytaishuail
[rootlocalhost /]# [ -z $rty ]
[rootlocalhost /]# echo $?
1
[rootlocalhost /]# rty
[rootlocalhost /]# [ -z $rty ]
[rootlocalhost /]# echo $?
0
[rootlocalhost /]#
[ -n 字符串 ] 字符是否存在 逻辑测试 格式
1. [ 表达式1 ] 操作符 [ 表达式2 ] ...
2. 命令1 操作符 命令2 ... 且 全真才为真
第一个要真 第二 个也要真 才能是真
如果第一个为假 整个 就为假 不用执行下个操作
cmd1 cmd2 或 一真即为真
如果第一个 为真 那么 不用执行第二个
第一个为假 才需要执行第二个
cmd1 || cmd2 常见条件
-a或逻辑与“而且”的意思全真才为真
-o或||逻辑或“或者”的意思一真即为真
!逻辑否 双中括号
[[ expression ]] 用法 左侧字符串是否和右侧的PATTERN相同 注意:此表达式用于[[ ]]中PATTERN元字符为通配符
~ 左侧字符串是否能够被右侧的正则表达式的PATTERN所匹配 注意: 此表达式用于[[ ]]中扩展的正则表达式
[rootlocalhost ~]# xuctre.log
[rootlocalhost ~]# [[ $xuc *.log ]] //是否有.log结尾的
[rootlocalhost ~]# echo $?
0
[rootlocalhost ~]# xuctre.text //将字符串重新定义
[rootlocalhost ~]# [[ $xuc *.log ]] //是否有.log结尾的
[rootlocalhost ~]# echo $?
1
[rootlocalhost ~]# [[ $xuc ! *.log ]] //取反 是否没有.log结尾的
[rootlocalhost ~]# echo $?
0
[rootlocalhost ~]# { } 可以将多个命令组合在一起批量执行 [rootlocalhost ~]# (cd /opt;ls)
999 nginx-1.18.0 qqq.sh test2
aa nginx-1.18.0.tar.gz rh
a.tar.gz nginx-1.18.0.tar.gz.0 test
etc qqq test1会开启子shell { } 不会开启子进程 if语句的结构 if语句 单分支 判断条件 成功执行 不成功 不执行
分支结构
单分支
if 判断条件;
then 条件为真的分支代码
fi 双分支
if 判断条件then
条件为假的分支代码
fi 多分支
if 判断条件1 then 条件1为真的分支代码
elif 判断条件2 then 条件2为真的分支代码
elif 判断条件3;then 条件3为真的分支代码
... else 以上条件都为假的分支代码 托底
fi 举例 单分支
判断是否为超级管理员
#!/bin/bashif [ $USER ! root ]
then
echo 非用户管理员
else
echo 是管理员用户
fi判断主机连通性
#!/bin/bash
ping -c 3 192.168.17.2
if
[ $? 0 ]
then
echo 与真机网络通畅
exit 1
fi
echo 与真机不通多分支
考试成绩
#!/bin/bash
read -p 请输入你的成绩 cjif [ $cj -ge 85 ][ $cj -le 100 ]
then
echo 你的成绩为$cj
echo 你的成绩为优秀elif [ $cj -ge 70 ][ $cj -le 84 ]
then
echo 你的成绩为$cj
echo 你的成绩为良好elif [ $cj -ge 60 ][ $cj -le 69 ]
then
echo 你的成绩为$cj
echo 你的成绩为合格
else
echo 你的成绩为$cj
echo 你的成绩不合格
ficase
格式
case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac
read -p
case $num in
条件判断1)
命令序列 ;; 条件判断2) 命令序列2 ;;
esac
字符
* 任意长度任意字符
? 任意单个字符
[0-9] 指定范围内的任意单个字符
| 或者如: a|b 例子
考试成绩
[rootlocalhost qqq]# bash 4.sh
请输入你的分数4
4 不及格
[rootlocalhost qqq]# cat 4.sh
#!/bin/bashread -p 请输入你的分数 cjcase $cj in
100)
echo $cj 你好棒
;;
[89][0-9])
echo $cj 一般般吧仍需努力
;;
[67][0-9])
echo $cj 及格
;;
[0-9]|[1-5][0-9])
echo $cj 不及格
;;*)
echo 输入有误
esac石头剪刀布
#!/bin/bash
mecho $[RANDOM%31]
read -p 请输入 1.石头2.剪刀3.布: hif [ $m -eq $h ]
then
echo 打成平局
bash $0
elif [ $h -eq 1 -a $m -eq 2 -o $h -eq 2 -a $m -eq 3 -o $h -eq 3 -a $m -eq 1 ]
then
echo 人类胜利
else
echo 机器胜利
fi#!/bin/bash
keyecho $[RANDOM%31]
read -p 请输入1包子 2剪子 3 锤子: numcase $num in
1)num包子
;;
2)num剪子
;;
3)num锤子
;;
*)echo 你输错了!exit
;;
esaccase $key in
1)key包子
;;
2)key剪子
;;
3)key锤子
;;
esacif [ $num 包子 -a $key 锤子 -o $num 剪子 -a $key 包子 -o $num 锤子 -a $key 剪子 ]
thenecho 机器出的是$key
echo 你出的是$num echo 人类胜利
elif [ $num $key ]
then
echo 机器出的是$key
echo 你出的是$num echo 打成平局再来一次
elseecho 机器出的是$key
echo 你出的是$num
echo 机器胜利
fiecho echo -n 表示不换行输出
echo -e 表示输出转义符
常用的转义符 不换行显示 \c 使用在数字中间会把后面内容删除 date
date查看当前系统时间
-d 你描述的日期显示指定字符串所描述的时间而非当前时间
%F 完整日期格式等价于 %Y-%m-%d
% T 时间24小时制hh:mm:ss cal 2023 seq
从1 开始 步长为2 到10 为止 从 20开始 步长为 -1 到1 为止