shell
test 测试
0为真
test -a /etc/fstab
echo $?
test -e /etc/fstab
echo $?
-a,-e #测试文件是否存在
-a有bug #取反会有变化
test +选项 对象参数
test -f #只看文件
-r #是否有读的权限
-w #是否有写的权限
-x #是否有执行的权限
-d #目录
-f #文件
[ -e /etc/fstab ];echo $?
[ -e /etc/fstab ] =test -e /etc/fstab
linux 中判断命令
test
[]
[[]] 加强版的单个[] #可以支持正则表达 和通配符
数值比较运算符
-eq #等于
-gt #大于
-ge #大于等于
-ne #不等于
-lt #小于
-le #小于或等于
字符串比较
[[ == ]] #判断两字符是否相等用双等号
=:字符串内容相同
!=:字符串内容不同,! 号表示相反的意思
-z:字符串内容为空
-n: 字符是否存在
逻辑测试
短路与 #全真才为真
cmd1 && cmd2 #看成一个整体
1为真2为真 ---> 真
一假即为假
短路或 #一真即为真
全假才为假
cmd1 || cmd2
设置ping的脚本
#ping三个包,等待2秒 将多余垃圾丢到null ,如成功就online ,失败就offline
实验 如果你是超级管理员 /data/test 文件 不存在 就创建这个文件
-o 或 -a 且
( ) { } 拓展
#() 相当于 cd /opt ls cd - { }相当于 cd /opt ls
if语句的结构
if 判断条件
单分支
if [ 5 gt 4]
then
touch /etc/test
echo true
fi
if #判断条件
theh #条件为真的分支代码
双分支
if [`id-u` -eq 0]
then
echo "你是超级管理员"
else
echo "你不是超级管理员"
fi
if #判断条件;
then #条件为真的分支代码
else #条件为假的分支代码
多分支
if 判断条件1
then #命令序列
#条件1为真的分支代码
elif 判断条件2
then# 命令序列
#条件2为真的分支代码
elif 判断条件3;
then #命令序列
#条件3为真的分支代码
.......................
else
#命令序列
fi
实验 分数实验
实验 布 剪子 锤
时间
#创建个时间文件
实验 创建用户 生成随机密码
case 条件判断
case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac
read -p i
case $i in
PAT1)
分支1
;;
PAT2)
分支2
;;
...
*)
默认分支
;;
case支持glob风格的通配符:
* #任意长度任意字符
? #任意单个字符
[0-9] 指定范围内的任意单个字符
| 或者,如: a|b
分数实验
输入数字表示数字,输入字母表示字母,输入特殊字符表示特殊字符
简易工具箱实验
#bash 0循环。不退出
输入yes,Yes, y 或者n no No 都可以输出yes or no
脚本运行编译安装+systemd
标签:语句,shell,编程,fstab,etc,判断,条件,test,分支 From: https://www.cnblogs.com/yanrui07/p/17847455.html