shell中的条件判断

这篇具有很好参考价值的文章主要介绍了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多条件

实例如下:文章来源地址https://www.toymoban.com/news/detail-721268.html


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。

到了这里,关于shell中的条件判断的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL中的单条件判断函数IF,和多条件判断CASE WHEN的用法

    在SQL中,条件判断函数IF用于根据指定的条件返回不同的值。 condition:要判断的条件。 value_if_true:如果条件为真,则返回的值。 value_if_false:如果条件为假,则返回的值。 假设有如下名为studensts的表,包含id、name和score字段: 我们想根据学生的分数判断是否及格,并返回相

    2024年02月11日
    浏览(86)
  • 运维Shell脚本小试牛刀(四): 多层嵌套if...elif...elif....else fi

      运维Shell脚本小试牛刀(一) 运维Shell脚本小试牛刀(二) 运维Shell脚本小试牛刀(三)::$(cd $(dirname $0); pwd)命令详解 运维Shell脚本小试牛刀(四): 多层嵌套if...elif...elif....else fi_蜗牛杨哥的博客-CSDN博客 Cenos7安装小火车程序动画 运维Shell脚本小试牛刀(五):until循环 运维Shell脚本小试牛

    2024年02月10日
    浏览(39)
  • Linux shell脚本set -e原理(set -o errexit 命令出错退出)(|| true屏蔽前面子命令返回值)(用if判断即使命令返回值不为零也不会退出)

    set -e 是 Linux shell 中的一个选项,它的作用是在脚本执行过程中,一旦出现任何命令执行失败(返回非零的退出状态码),脚本就会立即退出。 具体原理如下: 当设置了 set -e 选项后,shell 会在每个命令执行后检查其退出状态码。 如果命令的退出状态码为非零,表示命令执行

    2024年02月22日
    浏览(49)
  • shell中的条件判断

    在shell中经常会用到条件语句,常用的条件语句有if、while、case等 if判断 实例如下: while循环 实例如下: case多条件 实例如下:

    2024年02月08日
    浏览(37)
  • 【Shell编程】Linux Shell编程入门:输入输出、变量、条件判断、函数和运算

    在Linux操作系统中,Shell编程是一项非常重要的技能。通过Shell编程,我们可以自动化执行各种任务,提高工作效率。无论是系统管理、数据处理还是软件开发,都离不开Shell脚本的应用。本篇博客将带领大家深入了解Shell编程的基础知识,包括输入输出、变量、条件判断、函数

    2024年02月14日
    浏览(54)
  • Linux系统Shell脚本编程之条件语句

    Shell 环境根据命令执行后的返回状态值 \\\" $? \\\" 来判断是否执行成功,当返回值为0时表示成功,否则表示失败或异常(非0值)。 使用专门的测试工具 test 命令,可以对特定条件进行测试,并根据返回值(值为0)来判断是否成立。 test命令格式 文件测试指的是根据给定的路径名

    2024年01月25日
    浏览(74)
  • Linux【实操篇】—— Shell 编程入门、变量、运算符、条件判断、流程控制

    目录 一、Shell 编程入门 1. 认识 Shell 2. Shell 脚本的创建与执行         二、Shell 变量 1. 系统变量和自定义变量 2. 变量的基本规则 3. 设置环境变量 4. 位置参数变量 5. 预定义变量 三、运算符 四、条件判断 五、流程控制 1. if 语句 2. case 语句 3. for 循环 4. while 循环 六、rea

    2024年02月03日
    浏览(44)
  • Linux shell:脚本判断进程是否在运行

    一.命令说明 ps aux | grep 进程名 | grep -v grep :进程存在则输出信息,不存在则没输出 ps -ef | grep 进程名 | grep -v grep | wc -l :进程存在则输出行数(也就是数量),不存在则输出0 二.运行示例demo 方法一: 新建脚本:touch test.sh 添加如下内容: 赋予权限:chmod 777 test.sh 运行结果

    2024年02月11日
    浏览(60)
  • Linux使用shell脚本判断cpu架构

    sh文件示例如下: #!/bin/sh SCRIPTDIR=\\\"$( cd \\\"$( dirname \\\"$0\\\"  )\\\" pwd  )\\\" dlldir=$SCRIPTDIR cd `dirname $0` get_arch=`arch` dotnetName=\\\"dotnet\\\" if [[ $get_arch =~ \\\"x86_64\\\" ]];then     echo \\\"this is x86_64\\\"     if [ ! -f dotnet ];then         tar xvf aspnetcore-runtime-3.1.30-linux-x64.tar.gz     fi     dotnetName=\\\"./dotnet\\\" elif [[

    2023年04月26日
    浏览(62)
  • Linux--shell编程中的if语句

        1. if if 语句语法格式: if condition then     command1     command2     ...     commandN fi      1)判断当前系统是否有多个ssh进程,如果有则打印true test12.sh #!/bin/bash if   [   $(ps -ef | grep -c \\\"ssh\\\")   - gt 1   ] then     echo   \\\"true\\\"   fi       2)判断/media/cdrom文件是否存在,若

    2024年02月21日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包