当前位置: 代码网 > 服务器>服务器>Linux > Shell Script条件判断详解

Shell Script条件判断详解

2024年11月03日 Linux 我要评论
shell script条件判断一、shell 状态和重定向​ shell 在执行某个命令的时候,会返回两个返回值:​ 命令的执行结果​ 命令的执行状态​ 返回状态保存到一个特殊变量:$? ,0表示执

shell script条件判断

一、shell 状态和重定向

​ shell 在执行某个命令的时候,会返回两个返回值:

​ 命令的执行结果

​ 命令的执行状态

​ 返回状态保存到一个特殊变量:$? ,0表示执行状态成功。1-255表示执行命令不成功。

​ shell 中命令的执行返回状态可以当作一个条件测试表达式:

​ 命令返回状态为0:真

​ 命令返回状态为1-255:假

​ 输出重定向

​ shell中如果只想获取命令的执行返回状态,而不想看命令的执行结果,怎么办?

​ ①覆盖输出重定向:>

# 覆盖重定向
[root@localhost ~]# echo "abc" > abc.txt 
# 查看内容
[root@localhost ~]# cat abc.txt
abc

​ ②追加输出重定向:>>

# 追加重定向
[root@localhost ~]# echo "aaa" >> abc.txt
# 查看内容
[root@localhost ~]# cat abc.txt
abc
aaa

​ ③错误信息覆盖(追加)输出重定向:2> 和2>>

# 错误覆盖输出
[root@localhost ~]# ls /opt/myfile &> abc.txt
# 查看内容
[root@localhost ~]# cat abc.txt
ls: cannot access /opt/myfile: no such file or directory
# 错误追加输出
[root@localhost ~]# ls /opt/abc.txt &>> abc.txt
# 查看内容
[root@localhost ~]# cat abc.txt                
ls: cannot access /opt/myfile: no such file or directory
ls: cannot access /opt/abc.txt: no such file or directory

​ ④全部覆盖(追加)输出重定向:&> 和&>>

二、shell逻辑操作符&&,||

​ 逻辑与&&和逻辑或||操作符:

​ cmd1 && cmd2

​ 根据cmd1的执行返回状态,如果cmd1为真,最后结果不能确定,cmd2会继续执行

​ 根据cmd1的执行返回状态,如果cmd1为假,最后结果已经确定为假,cmd2不需执行

​ cmd1 || cmd2

​ 根据cmd1的执行返回状态,如果cmd1为真,最后结果已经确定为真,cmd2不需执行

​ 根据cmd1的执行返回状态,如果cmd1为假,最后结果不能确定,cmd2会继续执行

# 创建sh文件
[root@localhost ~]# vi myshell.sh
# 写入内容
#!/bin/bash
file="/opt/myfile/"
[ -d $file ] && echo "$file 已经存在"
[ -d $file ] || echo "$file 不存在"
# 运行结果
[root@localhost ~]# bash myshell.sh
/opt/myfile/ 不存在

三、if语句 一)shell if条件分支语句概述

​ 帮助文档:help if

​ 属于shell中的复合命令

​ 从语法可以看出涉及commands,在之前的学习中已经学习了不同用途的命令,都可以依据这些命令的执行结果来判断条件分支

​ 语法:

​ if commands; then commands; [ elif commands; then commands; ]… [ else commands; ] fi

​ 中括号是可选的意思

​ 分号可以使用换行符替代

​ 根据判断commands的退出状态选择:

​ commands成功执行:

​ then commands

​ commands执行失败:

​ elif commands

​ elif是else if的简写,在shell中空白符比较敏感

​ else commands

# 创建sh文件
[root@localhost ~]# vi myshell.sh
# 写入内容
#!/bin/bash
if [ $# -eq 1 ]; then
    echo "接收到一个参数,他是$1"
elif [ $# -ge 2 ]; then
    echo "接受到的参数大于等于2个,第二个参数为:$2"
else
    echo "没有接收到参数!!!"
    exit 1
fi
# 不传递参数
[root@localhost ~]# bash myshell.sh
没有接收到参数!!!
# 传递一个参数
[root@localhost ~]# bash myshell.sh abc
接收到一个参数,他是abc
# 传递两个参数
[root@localhost ~]# bash myshell.sh abc abcd
接受到的参数大于等于2个,第二个参数为:abcd

到此这篇关于shell script条件判断的文章就介绍到这了,更多相关shell script条件判断内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

  • Linux系统中的软连接管理详解

    Linux系统中的软连接管理详解

    软连接的基本概念软连接是一种特殊类型的文件,它包含指向另一个文件或目录的路径。与硬链接不同,软连接可以跨文件系统,也可以指向不存在的目标文件。软连接的优势在于其... [阅读全文]
  • 在Linux上搭建Minecraft服务器的方法步骤

    在Linux上搭建Minecraft服务器的方法步骤

    在选择服务器时,请确保它至少有 1gb 的 ram,最好至少有 2gb。首先,您需要通过ssh 连接到服务器。如果您使用的是 mac,可以打开终端;如果您使用的... [阅读全文]
  • 一文带你搞懂Nginx如何处理请求

    一文带你搞懂Nginx如何处理请求

    nginx(engine x)是一个高性能的http和反向代理服务器,它以其高并发、高性能和低资源消耗著称。这篇文章,我们将从原理、代码以及示例来深入分析 ng... [阅读全文]
  • Linux切换root用户的几种实现方式

    Linux切换root用户的几种实现方式

    概述在linux操作系统中,root用户是系统的超级用户,拥有的权限。无论是系统配置还是文件操作,都需要root权限才能进行。一般情况下,我们使用普通用户账号进... [阅读全文]
  • Linux如何使用HTTP进行远程系统监控

    简介http协议概述http协议是 超文本传输协议 ,基于tcp/ip通信协议,用于从万维网服务器传输数据到本地浏览器。它的工作原理基于 客户端-服务器架构 ,浏览器作为客户端通过…

    2024年11月04日 服务器
  • Linux下如何安装与设置Vim编辑器

    本文以centos7.4为例,讲解安装与设置vim编辑器我们安装完centos7.4后,它默认是安装了vi编辑器的,但vim编辑器是没安装或者未完全安装的。第一步:安装vim编辑器…

    2024年11月04日 服务器

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com