乐趣区

关于java:Shell-编程常用参考

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 公布

退出移动版