Shell条件表达式

本文详细介绍了Shell条件表达式,包括条件测试语句、文件判断、字符串和整数表达式,以及如何使用正则表达式。文章还提供了企业面试题,如根据输入数字输出特定结果和使用read比较两个整数的大小。最后,设有登录框的编程作业供读者实践。
摘要由CSDN通过智能技术生成

Shell条件表达式

条件表达式介绍

条件表达式,我们非常的常用,可以说,任何编程语言,都离不开条件表达式,但是每种变成语言的写法都不太一样,在shell中,有一种独特的写法。

条件测试语句

条件测试语句,我们又叫做test语句。

test: 条件测试
[]: 条件测试(语法:中括号两边一定要有空格)例:[ -f /etc/passwd ] 错误写法: [-f /etc/passwd]
[[]]: 支持正则(语法:中括号两边一定要有空格)

文件判断

-f: file 判断普通文件是否存在,如果存在则为真,如果不存在则为假
-d: directroy 判断目录是否存在,如果存在则为真,如果不存在则为假
-e: exists 判断是否存在,如果存在则为真,如果不存在则为假(不分文件还是目录)
-r: read 先判断文件是否存在,如果存在再判断是否有读权限,如果存在并且有读取权限则为真,否则为假(root用户永远有读取权限)
-w: write 先判断文件是否存在,如果存在再判断是否有写权限,如果存在并且有写权限则为真,否则为假(root用户永远有写权限)
-x: exec 先判断文件是否存在,如果存在再判断是否有执行权限,如果存在并且有执行权限则为真,否则为假
-s: size 先判断文件是否存在,如果存在再判断文件大小是否为0,如果是0则为假,如果大于0则为真(空文件为假,非空文件为真)
-L: link 先判断文件是否存在,如果存在再判断文件是否为软连接文件,如果是则为真,否则为假
-nt: newer than 判断文件是否较新,如果是则为真,否则为假
# [ simple_ip_host.sh -nt 01_position.sh ]
-ot: older than 判断文件是否较旧,如果是则为真,否则为假
# [ simple_ip_host.sh -ot 01_position.sh ]


## 做判断
[ -f /etc/zls.txt ] && echo '文件已存在' || echo '文件不存在'

[ -f /etc/passwd ] && {
   
  echo '文件已存在'
} || {
   
  echo '文件不存在'
  touch /etc/zls.txt
}

优化计算器

#!/bin/bash

num1=$1
num2=$2
[ $# -ne 2 ] && {
   
  echo '传递两个参数'
  exit 1
}

expr $num1 + $num2 &>/dev/null

[ $? -ne 0 ] && {
   
  echo '传递两个数字'
  exit 2
}

awk "BEGIN{print $num1+$num2}"
awk "BEGIN{print $num1-
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值