Shell 编程常用参考

文章详细介绍了Shell中的特殊变量,如$0表示脚本文件名,$#表示参数个数,$*和$@在不同引用方式下对参数的处理,以及$?和$$的用途。同时,文章也讲解了Shell的if判断语句,包括字符串、整数的比较和逻辑运算,以及文件测试的相关操作。
摘要由CSDN通过智能技术生成

Shell特殊变量

Shell 中的特殊变量 $0、$#, $*, $@, $?, $$和命令行参数,参考如下表:

变量含义
$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 测试文件对当前用户是都可执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值