shell脚本

本文详细介绍了Bash脚本中的变量类型,包括环境变量、本地变量和位置变量,以及特殊变量的使用。同时,讲解了Bash中的条件判断,如整数、字符和文件测试,以及逻辑运算符的运用。此外,还提供了脚本错误检查方法和组合测试条件的示例,帮助读者深入理解Bash脚本编程。
摘要由CSDN通过智能技术生成

变量

变量名称

  • 只能包含字母、数字、下划线,并且不能以数字开头
  • 不应该跟系统中已有的环境变量重名,尽量不要全部使用大写,尽量不要用“_”下划线开头
  • 最好做到见名知义
  • 不能使用程序中的保留字,例如if、for等

bash变量类型

  • 环境变量

export VAR_NAME=VALUE

  • 本地变量

VAR_NAME=VALUE

  • 位置变量

$1, $2, $3 //引用脚本的参数

  • 特殊变量
$#	    //是传给脚本的参数个数
$0		//是脚本本身的名字
$!		//是shell最后运行的后台Process的PID
$*		//是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$@		//是传给脚本的所有参数的列表
$$		//是脚本运行的当前进程ID号
$?		//是显示上条命令的退出状态,0表示没有错误,其他表示有错误

脚本测试

bash如何测试脚本是否有错误?报错后如何排查?

bash -n scriptname      //检查脚本是否有语法错误
bash -x scriptname      //单步执行,检查脚本错在哪里

命令间的逻辑关系

逻辑与:&&
    第一个条件为假时,第二个条件不用再判断,最终结果已经有
    第一个条件为真时,第二个条件必须得判断
逻辑或:||
    前一个命令的结果为真时,第二个命令就不执行
    前一个命令的结果为假时,第二个命令必须执行

bash条件判断

整数测试

-eq     //测试两个整数是否相等
-ne     //测试两个整数是否不等
-gt     //测试一个数是否大于另一个数
-lt     //测试一个数是否小于另一个数
-ge     //大于或等于
-le     //小于或等于

字符测试

==      //等值比较,检查==两边的内容是否一致,==两边都要有空格
!=      //检查两边内容是否不一致,不一致为真,一致为假
=~      //左侧字符串是否能够被右侧的PATTERN所匹配到。此表达式应用于双中括号[[]]中
-z "string"     //测试指定字符串是否为空,空则为真,不空则为假
-n "string"     //测试指定字符串是否不空,不空则为真,空则为假

文件测试

-e		//测试文件是否存在
-b      //测试文件是否为块设备文件
-c      //测试文件是否为字符设备文件
-f      //测试文件是否为普通文件
-d      //测试指定路径是否为目录
-h      //测试文件是否为符号链接文件
-L      //测试文件是否为符号链接文件
-p      //测试文件是否为命名管道文件
-S      //测试文件是否为套接字文件

组合测试条件

-a      //与关系
-o      //或关系
!       //非关系

[ $# -gt 1 -a $# -le 3 ]
[ $# -gt 1 ] && [ $# -le 3 ]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值