一、条件语句
1、测试
①test命令测试
②[ ]测试(注意前后需要有空格)
③[[ ]]加强版[ ],测试支持通配符和正则表达式
三种测试方法选项:
-d:测试是否为目录(Directory)
-e:测试目录或文件是否存在(Exist)
-a:测试目录或文件是否存在(Exist)
-f:测试是否为文件(File)
-r:测试当前用户是否有权限读取(Read)
-w:测试当前用户是否有权限写入(Write)
-x:测试当前用户是否有权限执行(eXcute)
-L: 测试是否为软连接文件
2、 比较整数数值
[ 整数1 操作符 整数2 ] 公式
-
-eq:第一个数等于(Equal)第二个数
-
-ne:第一个数不等于(Not Equal)第二个数
-
-gt:第一个数大于(Greater Than)第二个数
-
-lt:第一个数小于(Lesser Than)第二个数
-
-le:第一个数小于或等于(Lesser or Equal)第二个数
-
-ge:第一个数大于或等于(Greater or Equal)第二个数
[ 整数1 操作符 整数2 ]
[root@test1 ~]# a=2 实例
[root@test1 ~]# b=3
[root@test1 ~] [ $a -eq $b ]
[root@test1 ~]# echo $?
1
[root@test1 ~]# [ 2 -le 3 ]
[root@test1 ~]# echo $?
0
3、字符串比较
常用的测试操作符
-
=:字符串内容相同
-
!=:字符串内容不同,! 号表示相反的意思
-
-z:字符串内容为空
-
-n: 字符是否存在
4、逻辑测试
①格式1:[ 表达式1 ] 操作符 [ 表达式2 ]
②格式2:命令1 操作符 命令2
操作符:
&&或-a 表示且的意思,前面表达式或命令1为真才会执行操作符后面的表达式2或命令2。一假则为假。
||或-o 表示或的意思,前面表达式1或命令1为真则整个表达式为真,前面表达式为假或命令为假才会执行后面的表达式2或命令2 。一真则为真。
! 逻辑否。
二、脚本中常用命令
1. echo命令
echo命令:打印内容在窗口中
①echo -n 表示输出不换行
②echo -e 表示输出转义符
echo -e 配合转义符
\b 退格,删除前一个字符。例如 echo -e "1234\b56" 则输出的是12356,4会被删除。
\c 抑制更多输出,\c后的内容全部不输出。例如 echo -e "123\c456"则输出的是123。
\n 输出换行,\n后的内容换行。例如 echo -e "123\n456 " 则输出123下一行输出456。
\t 相当于输出过程中按了一下tab键。
\f 输出换行但是光标位置不变。例如echo -e "123\f456"则输入123下一行开头空出123的位置然后再输出456
2. date命令
date命令:查看时间,显示格式为,星期 月 日 时分秒 年
选项:
+%F 输出格式年-月-日,注意%在crontab定时中不能直接使用,需要转义
+%T 输出格式时:分:秒, 注意%在crontab定时中不能直接使用,需要转义
3. cal命令
cal命令:显示当月日历。
选项:
cal 12 显示本年整年日历
cal 某年 显示此年完整日历
4. tr命令
tr命令:替换内容
基本格式:tr 需要替换的内容 替换后的内容
例如: tr [a-z] [A-Z] 遇见小写字母全部转为大写字母
选项:
-s 压缩功能。例如 tr -s aaa 输出a。
-d 删除功能。例如 tr -d abc 则输入123abc回车只会打印123。
-c 用字符串1中字符集的补集替换此字符集,例如 cat /dev/random | tr -dc [[:alnum:]] | head -c 12。 /dev/random中是随机的字符内容 -dc 表示删除其他不需要内容 [[:alnum:]] 表示数字和字符 head -c 12 表示取前12个字符,完整表达式意思为查看random文件并将非字符和数字内容删除然后取前12个字符,常用于生成随机密码。
5. cut命令
cut命令:提取想要的信息。
选项:
-d 指定分隔符 例如 cut -d ":"指定:为分隔符。
-f 选择第几列 例如 cut -f3 取第三列,-f1,3取第1列和第三列,-f1-3取1-3列。
6. sort命令
sort命令:排序
选项:
-r 执行反方向(由上至下)整理
-n 按数字大小排序,默认第一列默认按字母顺序
-t 指定分隔符
-k 指定列 ,例如 -k3
7. uniq命令
uniq命令:去除连续的重复,一般配合sort使用
-c 显示每个重复出现的次数
split 命令:分隔大文件
-b 大小(例如1G) +要分隔文件名 加名称分隔指定名称,但是后面的xaa,xab不能指定,只能指定x。
8. cat多行重定向
cat <<EOF
1
2
3
EOF
打印123到屏幕
三、if语句
1. 使用格式
if [条件判断]
then (条件1成立则走then)
[执行命令]
elif [条件判断2 ] (可添加多个elif )
then (条件2成立则走then)
[执行命令]
else (所有条件不成立则走else)
[执行命令]
fi (if结束语句)
2. if语句实例
学生输入分数判断自己的成绩是优秀(91-100)、良好(81-90)、及格(60-80)、不及格(小于60)
四、case语句
1. 使用格式
case 变量引用 in
PAT1) 符合条件1执行分支1的命令,PAT1可以使用通配符
分支1命令
;; 每个分支结束的固定格式
PAT2) 符合条件1执行分支2的命令,PAT2可以使用通配符
分支2命令
;; 每个分支结束的固定格式,可以有多个分支
*) 不符合其他任意分支的默认分支
默认分支命令
;; 分支结束的固定格式
esac case语句结束标志
2. case语句实例
标签:语句,输出,Shell,echo,命令,123,测试,Linux,格式 From: https://www.cnblogs.com/daiwei-123/p/17092964.html