shell中的条件判断

文章介绍了在Shell脚本中常用的条件语句,包括if判断,while循环以及case多条件语句的使用方法和示例。在if判断中,可以使用&&和||进行逻辑运算。while循环在满足条件时持续执行代码块。case语句则常用于处理简单的命令行参数。此外,文章还提到了位置参数和特殊变量在Shell脚本中的应用。

在shell中经常会用到条件语句,常用的条件语句有if、while、case等

if判断

实例如下:

str1="1"
# 使用引号,防止变量为空值时语句错误
if [ "${str1}" == "1" ];then
    echo "str1: 1"
elif [ "${str1}" == "2" ];then
    echo "str1: 2"
else
    echo "str1: ${str1}"
fi
注:
在if判断中可使用&&进行多个同时成立的判断,如:
  if [ "${str1}" != "1" ] && [ "${str1}" != "2" ]
在if判断中可使用||进行多个同时成立的判断,如:
  if [ "${str1}" != "1" ] || [ "${str1}" != "2" ]
注:
if [ str1 == str2 ]          当两个串有相同内容、长度时为真 
if [ str1 != str2 ]         当串str1和str2不等时为真 
if [ -n str1 ]              当串的长度大于0时为真(串非空) 
if [ -z str1 ]             当串的长度为0时为真(空串) 
if [ str1 ]               当串str1为非空时为真
-eq —比较两个参数是否相等(例如,if [ 2 –eq 5 ])
-ne —比较两个参数是否不相等
-lt —参数1是否小于参数2
-le —参数1是否小于等于参数2
-gt —参数1是否大于参数2
-ge —参数1是否大于等于参数2
-f — 检查某文件是否存在(例如,if [ -f "filename" ])
-d — 检查目录是否存在

while循环

实例如下:

function test1(){
  local i=0
  while [ "${i}" -lt 10 ];do
    let i++
    echo "${i}"
  done
}

注:while在满足条件的情况下回循环执行语句,直到条件不成立
注:在while中,可使用break跳出循环,或使用continue结束当前循环,进行下次循环

case多条件

实例如下:


case $1 in
    start) start;;
    stop)  stop;;
    *) helps ;;
esac

注:case条件常用于读取简单的shell传参,如:bash server.sh start 
可通过读取传入的命令行参数$1 ,实现不同的方法

注:命令行参数如下
$0 表示程序名。
$1 至 $9则是位置参数。
$# 表示参数的个数。
$* 将所有参数当做一个整体来引用
$@ 把每个参数作为一个字符串返回,可以使用for循环来遍历
$? 最近一个执行的命令的退出状态。0表示执行成功
$_ 上一个命令的最后一个参数。使用快捷键 ESC+. 也是这个效果

位置参数: 位置参数不止9个,更多的参数也是一样支持的。只是要使用${10}这样的形式引用。
$1 和 ${1}的效果是一样的。不用花括号的话,$10 会被认为是 $1 和一个字符 0。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值