shell基础--test命令的使用
test :用于文件类型检查和变量比较
一.用途:
1.判断表达式
2.判断字符串
3.判断整数
4.判断文件
测试例子:
(1).test
[root@~_~ day5]# cat test.sh
#!/bin/bash
a=$1
b=$2
if test $a -eq $b
then
echo "a=b"
else
echo "a!=b"
fi
[root@~_~ day5]# sh test.sh 1 1
a=b
[root@~_~ day5]# sh test.sh 1 2
a!=b
---------------------------------------------
(2).[]
[root@~_~ day5]# cat test.sh
#!/bin/bash
a=$1
b=$2
[ $a = $b ] && echo "a=b" || echo "a!=b"
[root@~_~ day5]# sh test.sh 1 2
a!=b
[root@~_~ day5]# sh test.sh 1 1
a=b
-------------------------------------------------
(3).判断文件
[root@~_~ day5]# cat test2.sh
#!/bin/bash
[ -f "$0" ]&& echo "$0 is a file" || echo "$0 is not a file"
[root@~_~ day5]# sh test2.sh
test2.sh is a file
二.test,[] , [[]]用法比较
[]与test等价,均为shell得到内部命令,而[[]]是shell得到关键字,bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码,故推荐用 [[]] 作为条件判断语句,不易出现逻辑错误。另外,[[]]还支持模式匹配和正则表达式
(1).语法比较
[[]]: if [[ $a != 1 && $a != 2 ]]
[]: if [ $a -ne 1] && [ $a != 2 ] 或者 if [ $a -ne 1 -a $a != 2 ]
(2). [[]] 支持模式匹配
[root@~_~ day5]# cat test4.sh
#!/bin/bash
[[ "abcd" == a*d ]]&& echo True || echo Flase
[ "abcd" == a*d ]&& echo True || echo Flase
[root@~_~ day5]# sh test4.sh
True
Flase
(3).[[]] 支持正则表达式
[root@~_~ day5]# cat test5.sh
[[ "hello" =~ ^h ]]&& echo Ture || echo False
[root@~_~ day5]# sh test5.sh
Ture
shell基础--test命令的使用的更多相关文章
- [shell基础]——find命令
find命令选项 -name 按照文件名查找 -type 查找某一类型的文件(b 代表设备块:d 目录:c 字符设备文件:l 符号(软)链接文件:f 普通文件) -size 查找文件长度或者大小 -p ...
- [shell基础]——sed命令
关于sed sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓 ...
- [shell基础]——read命令
read命令:在shell中主要用于读取输入.变量.文本 1. 接受标准输入(键盘)的输入,并将输入的数据赋值给设置的变量 [按回车键——表示输入完毕] [若输入的数据多于设置的变 ...
- [shell基础]——echo命令
echo命令:在shell中主要用于输出 1. -n 不换行的显示结果(默认是换行的) 2. -e " " 支持双引号中使用一些特殊字符 常用的特殊字符有 \a 发出警告 ...
- [shell基础]——sort命令
sort命令 sort是按照ASCII码升序输出,且是从首字符依次向后比较的 常见选项 -c 测试文件是否已经被排序 -r 逆向排序 -n 按照数字数值大小排序 -t 指定分割 ...
- [shell基础]——uniq命令
uniq命令常见选项 去除重复行 -u 显示不重复的行 -d 显示有重复的行 -c 打印每一行重复的次数 测试文本内容如下: # cat 4.txt 11 ...
- [shell基础]——cut命令
cut命令常见选项
- shell基础--cat命令的使用
一.cat的常用用法 1.总结 2.实验 (1).非交互式编辑 [root@~_~ day5]# cat > cattest.sh <<STOP > hello > ST ...
- Shell基础-Bash命令类型
Bash命令大体可以分为两类: 第一类是可执行文件,例如ls等 第二类是Bash内建命令,常见echo,cd等 bash命令优先级表:1别名 由alias指定 2关键字 3函数 由function ...
随机推荐
- [C#]简单离线注册码生成与验证
本文使用RSA非对称加密和Base64简单地实现离线注册码的生成与验证功能. 主要思路就是提供者持有密钥,通过RSA加密客户机标识或时间标识,再通过Base64加密成不太难看的注册码,然后分发给客户机 ...
- 如何解决css-子div设置margin-top后,父div与子div一起下移的bug?
根据规范,一个盒子如果没有上补白(padding-top)和上边框(border-top),那么这个盒子的上边距会和其内部文档流中的第一个子元素的上边距重叠. 这是规范引起的普遍问题. 只要给父盒子设 ...
- 【vue】vue的路由权限管理
前言: 最近闲来无事浏览各种博客,看到了一个关于路由权限的管理,觉得很有用,针对那个博客,准备自己写一个demo. 实现: 路由大致分为用户路由<特定用户才能浏览>和基本路由<所有用 ...
- Spring Boot—15SpringJPA
pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- Batch Norm、Layer Norm、Weight Norm与SELU
加速网络收敛——BN.LN.WN与selu 自Batch Norm出现之后,Layer Norm和Weight Norm作为Batch Norm的变体相继出现.最近又出来一个很”简单”的激活函数Sel ...
- 在Fragment里面调用getActivity()报null
看友盟的错误日志发现又出现了NullPointerException,然后去看代码,发现只有是上下文有空的可能,但是因为以前已经发生过这种情况所以上下文我都是在创建Fragment对象的时候从Acti ...
- idea 自动导入包设置
- 【Java】得到当前系统时间,精确到毫秒
import java.text.SimpleDateFormat; import java.util.Date; import java.util.Calendar; public class Ma ...
- Tomcat – Java.Lang.OutOfMemoryError: PermGen Space
很多时候,在开发阶段Tomcat重复的重启过程中会遇到java.lang.OutOfMemoryError : PermGen space 错误. 1 2 3 4 java.lang.OutOfMem ...
- Python-Image 基本的图像处理操作
Python-Image 基本的图像处理操作,有需要的朋友可以参考下. Python 里面最常用的图像操作库是 Image library(PIL),功能上,虽然还不能跟Matlab比较,但是还是比较 ...