Shell 非凡变量 $0, $#, $*, $@, $?, $$ 和命令行参数
Shell 中的非凡变量参考如下表:
变量 | 含意 |
---|---|
$0 | 以后脚本的文件名 |
$n | 传递给脚本或函数的参数。n 是一个数字,示意第几个参数。例如,第一个参数是 $1,第二个参数是 $2 |
$# | 传递给脚本或函数的参数个数 |
$* | 传递给脚本或函数的所有参数 |
$@ | 传递给脚本或函数的所有参数。被双引号 (” “) 蕴含时,与 $* 稍有不同,上面将会讲到 |
$? | 上个命令的退出状态,或上个函数的返回值 |
$$ | 以后 Shell 过程 ID。对于 Shell 脚本,就是这些脚本所在的过程 ID |
注:$* 和 $@ 的区别
- $* 和 $@ 都示意传递给函数或脚本的所有参数,不被双引号 (” “) 蕴含时,都以 ”$1” “$2” … “$n” 的模式输入所有参数。
- 然而当它们被双引号 (” “) 蕴含时,”$*” 会将所有的参数作为一个整体,以 ”$1 $2 … $n” 的模式输入所有参数;”$@” 会将各个参数离开,以 ”$1″ “$2” … “$n” 的模式输入所有参数。
Shell 中的 if 判断
条件测试的表达式
- if [str1 = str2]:当两个串有雷同内容、长度时为真
- if [str1 != str2]:当串 str1 和 str2 不等时为真
- if [-n str1]:当串的长度大于 0 时为真(串非空)
- if [-z str1]:当串的长度为 0 时为真(空串)
- if [str1]:当串 str1 为非空时为真
整数比拟
- -eq:测试两个整数是否相等
- -ne:测试两个整数是否不等
- -gt:测试一个数是否大于另一个数
- -lt:测试一个数是否小于另一个数
- -ge:大于或等于
- -le:小于或等于
命令间的逻辑关系:
- 逻辑与:&&
- 逻辑或:||
字符串比拟
字符串比拟,间接用 ==、!=、>、< 等符号即可,两边须要有空格。
文件测试
- -e:FILE 测试文件是否存在
- -f:file 测试文件是否为一般文件
- -d:file 测试指定门路是否为目录
- -r:file 测试文件对以后用户是否可读
- -w:file 测试文件对以后用户是否可写
- -x:file 测试文件对以后用户是都可执行
我是梅小西,最近在某东南亚电商公司做 DevOps 的相干事件。从本期开始,将陆续分享基于 Jenkins 的 CI/CD 工作流,包含 Jenkins On k8s 等。
如果你对 Java 或者 Jenkins 等感兴趣,欢送与我分割,微信:wxweven(备注 DevOps),也欢送关注公众号:
本文由博客群发一文多发等经营工具平台 OpenWrite 公布