首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
函数参数与返回值
传递变长参数
defer 和追踪
内置函数
递归函数
将函数作为参数
闭包
应用闭包:将函数作为返回值
使用闭包调试
计算函数执行时间
通过内存缓存来提升性能
声明和初始化
切片
For-range 结构
切片重组(reslice)
切片的复制与追加
字符串、数组和切片的应用
声明、初始化和 make
测试键值对是否存在及删除元素
for-range 的配套用法
map 类型的切片
map 的排序
将 map 的键值对调
标准库概述
regexp 包
锁和 sync 包
精密计算和 big 包
自定义包和可见性
为自定义包使用 godoc
使用 go install 安装自定义包
自定义包的目录结构、go install 和 go test
通过 Git 打包和安装
Go 的外部包和项目
在 Go 程序中使用外部库
结构体定义
使用工厂方法创建结构体实例
使用自定义包中的结构体
带标签的结构体
匿名字段和内嵌结构体
方法
类型的 String() 方法和格式化描述符
垃圾回收和 SetFinalizer
当前位置:
首页>>
技术小册>>
go编程权威指南(二)
小册名称:go编程权威指南(二)
**Shell test 命令** Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。 ------------ **数值测试** 参数 说明 -eq 等于则为真 -ne 不等于则为真 -gt 大于则为真 -ge 大于等于则为真 -lt 小于则为真 -le 小于等于则为真 ------------ 示例: ```bash num1=100 num2=100 if test $[num1] -eq $[num2] then echo '两个数相等!' else echo '两个数不相等!' fi ``` ------------ 代码中的 [] 执行基本的算数运算,如: ```bash #!/bin/bash a=5 b=6 result=$[a+b] # 注意等号两边不能有空格 echo "result 为: $result" ``` ------------ **字符串测试** 参数 说明 = 等于则为真 != 不相等则为真 -z 字符串 字符串的长度为零则为真 -n 字符串 字符串的长度不为零则为真 ------------ 示例: ```bash str1="kalaisadog" str2="kalaisacat" if test $str1 = $str2 then echo '两个字符串相等!' else echo '两个字符串不相等!' fi ``` ------------ **文件测试** | 参数 | 说明 | | --- | --- | | \-e 文件名 | 如果文件存在则为真 | | \-r 文件名 | 如果文件存在且可读则为真 | | \-w 文件名 | 如果文件存在且可写则为真 | | \-x 文件名 | 如果文件存在且可执行则为真 | | \-s 文件名 | 如果文件存在且至少有一个字符则为真 | | \-d 文件名 | 如果文件存在且为目录则为真 | | \-f 文件名 | 如果文件存在且为普通文件则为真 | | \-c 文件名 | 如果文件存在且为字符型特殊文件则为真 | | \-b 文件名 | 如果文件存在且为块特殊文件则为真 | 示例: ```bash cd /bin if test -e ./bash then echo '文件已存在!' else echo '文件不存在!' fi ``` 另外,Shell 还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为: ! 最高, -a 次之, -o 最低。例如: ```bash cd /bin if test -e ./notFile -o -e ./bash then echo '至少有一个文件存在!' else echo '两个文件都不存在' fi ``` ------------ 小结: 文件测试运算符在运维脚本中应用很常见,如我们要安装一个服务,需要判断某个目录是否存在,如果该目录存在,会去下载文件,如果安装某个软件前,也会检测该软件依赖的某些其它软件是否安装,如果未安装,需要测试该安装包文件是否存在等等。
上一篇:
shell编程-printf命令
下一篇:
shell编程-函数
该分类下的相关小册推荐:
深入浅出Go语言核心编程(二)
Go 组件设计与实现
go编程权威指南(三)
Go-Web编程实战
Go Web编程(中)
Go语言入门实战经典
深入浅出Go语言核心编程(三)
Go Web编程(上)
深入浅出Go语言核心编程(六)
深入浅出Go语言核心编程(七)
深入浅出Go语言核心编程(五)
Go语言从入门到实战