iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Shell退出状态的用法是什么
  • 426
分享到

Shell退出状态的用法是什么

2023-06-09 11:06:44 426人浏览 泡泡鱼
摘要

这篇文章主要介绍“shell退出状态的用法是什么”,在日常操作中,相信很多人在Shell退出状态的用法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell退出状态的用法是什么”的疑惑有所帮助!接下来

这篇文章主要介绍“shell退出状态的用法是什么”,在日常操作中,相信很多人在Shell退出状态的用法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell退出状态的用法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

每一条 Shell 命令,不管是 Bash 内置命令(例如 cd、echo),还是外部的 linux 命令(例如 ls、awk),还是自定义的 Shell 函数,当它退出(运行结束)时,都会返回一个比较小的整数值给调用(使用)它的程序,这就是命令的退出状态(exit statu)。

很多 Linux 命令其实就是一个C语言程序,熟悉C语言的读者都知道,main() 函数的最后都有一个return 0,如果程序想在中间退出,还可以使用exit 0,这其实就是C语言程序的退出状态。当有其它程序调用这个程序时,就可以捕获这个退出状态。

if 语句的判断条件,从本质上讲,判断的就是命令的退出状态。

按照惯例来说,退出状态为 0 表示“成功”;也就是说,程序执行完成并且没有遇到任何问题。除 0 以外的其它任何退出状态都为“失败”。

之所以说这是“惯例”而非“规定”,是因为也会有例外,比如 diff 命令用来比较两个文件的不同,对于“没有差别”的文件返回 0,对于“找到差别”的文件返回 1,对无效文件名返回 2。

编程经验的读者请注意,Shell 的这个部分与你所熟悉的其它编程语言正好相反:在C语言、c++、Java、python 中,0 表示“假”,其它值表示“真”。

在 Shell 中,有多种方式取得命令的退出状态,其中 $? 是最常见的一种。上节《Shell if else》中使用了 (()) 进行数学计算,我们不妨来看一下它的退出状态。请看下面的代码:

#!/bin/bashread aread b(( $a == $b ));echo "退出状态:"$?

运行结果1:
26
26
退出状态:0

运行结果2:
17
39
退出状态:1

退出状态和逻辑运算符的组合

Shell if 语句的一个神奇之处是允许我们使用逻辑运算符将多个退出状态组合起来,这样就可以一次判断多个条件了。

Shell 逻辑运算符

运算符使用格式说明
&&expression1 && expression2逻辑与运算符,当 expression1 和 expression2 同时成立时,整个表达式才成立。
 
 如果检测到 expression1 的退出状态为 0,就不会再检测 expression2 了,因为不管 expression2 的退出状态是什么,整个表达式必然都是不成立的,检测了也是多此一举。
||expression1 || expression2逻辑或运算符,expression1 和 expression2 两个表达式中只要有一个成立,整个表达式就成立。
 
 如果检测到 expression1 的退出状态为 1,就不会再检测 expression2 了,因为不管 expression2 的退出状态是什么,整个表达式必然都是成立的,检测了也是多此一举。
!!expression逻辑非运算符,相当于“取反”的效果。如果 expression 成立,那么整个表达式就不成立;如果 expression 不成立,那么整个表达式就成立。

【实例】将用户输入的 URL 写入到文件中。

#!/bin/bashread filenameread urlif test -w $filename && test -n $urlthen  echo $url > $filename  echo "写入成功"else  echo "写入失败"fi

在 Shell 脚本文件所在的目录新建一个文本文件并命名为 urls.txt,然后运行 Shell 脚本,运行结果为:

urls.txt↙
Http://jb51.net/shell/↙
写入成功

test 是 Shell 内置命令,可以对文件或者字符串进行检测,其中,-w选项用来检测文件是否存在并且可写,-n选项用来检测字符串是否非空。下节《Shell test》中将会详细讲解。

>表示重定向,默认情况下,echo 向控制台输出,这里我们将输出结果重定向到文件。

到此,关于“Shell退出状态的用法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Shell退出状态的用法是什么

本文链接: https://www.lsjlt.com/news/255759.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Shell退出状态的用法是什么
    这篇文章主要介绍“Shell退出状态的用法是什么”,在日常操作中,相信很多人在Shell退出状态的用法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell退出状态的用法是什么”的疑惑有所帮助!接下来...
    99+
    2023-06-09
  • Shell退出状态码的方法
    这篇文章主要讲解了“Shell退出状态码的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell退出状态码的方法”吧!Shell 中运行的命令会使用0-255之间的整数值,作为退出状态...
    99+
    2023-06-09
  • 如何使用Shell退出状态
    如何使用Shell退出状态?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。退出状态和逻辑运算符的组合Shell if 语句的一个神奇之处是允许我们使用逻辑运算符将...
    99+
    2023-06-06
  • Shell程序退出状态码的命令详解
    目录程序退出状态码前言状态码简介退出码表实例说明退出码——1shell内部操作失败——退出码2退出码126命令没有找到——退出码127信号值&mda...
    99+
    2024-04-02
  • shell退出当前循环的方法是什么
    在 shell 中,退出当前循环的方法可以使用关键字 `break`。当执行到 `break` 时,循环会立即终止,并跳出循环的代码...
    99+
    2023-09-14
    shell
  • android退出app的方法是什么
    在 Android 中,退出应用程序的方法有两种:1. 使用系统的返回键:在应用程序的任何界面中,按下系统的返回键即可退出应用程序。...
    99+
    2023-05-29
    android退出app android
  • Vuex状态管理的方法是什么
    这篇文章主要介绍“Vuex状态管理的方法是什么”,在日常操作中,相信很多人在Vuex状态管理的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vuex状态管理的方法是什么”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-03
  • React状态提升的方法是什么
    今天小编给大家分享一下React状态提升的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.介绍所谓 状态提升 就...
    99+
    2023-07-06
  • ReactNative状态管理redux使用的方法是什么
    这篇“ReactNative状态管理redux使用的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ReactNat...
    99+
    2023-07-05
  • ubuntu从guest退出的方法是什么
    这篇文章主要介绍“ubuntu从guest退出的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ubuntu从guest退出的方法是什么”文章能帮助大家解决问题。1.打开终端,输入以下命令关...
    99+
    2023-07-04
  • ubuntu退出程序的方法是什么
    这篇文章主要讲解了“ubuntu退出程序的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ubuntu退出程序的方法是什么”吧!打开命令行窗口,通过以下命令杀掉对应的进程来退出。方法...
    99+
    2023-07-04
  • drools的有状态Session和无状态Session是什么
    这篇文章主要介绍了drools的有状态Session和无状态Session是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇drools的有状态Session和无状态Session是什么文章都会有所收获,下面...
    99+
    2023-06-30
  • 什么是Nagios的flapping状态
    Nagios的flapping状态是指在短时间内,监控对象频繁地从问题状态和正常状态之间不断切换的情况。这种状态可能会导致Nagio...
    99+
    2024-03-12
    Nagios
  • Flex4beta状态语法中的变化是什么
    这篇文章将为大家详细讲解有关Flex4beta状态语法中的变化是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Flex4beta状态语法中的变化Flex4beta将状态功能升级为一个全面的MXML语言...
    99+
    2023-06-17
  • Shell $?如何获取函数返回值或者上一个命令的退出状态
    这篇文章主要介绍“Shell $如何获取函数返回值或者上一个命令的退出状态”,在日常操作中,相信很多人在Shell $如何获取函数返回值或者上一个命令的退出状态问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”S...
    99+
    2023-06-09
  • Electron电源状态管理的方法是什么
    这篇“Electron电源状态管理的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Electron电源状态管理的方...
    99+
    2023-07-05
  • Vue之Pinia状态管理的方法是什么
    这篇文章主要介绍“Vue之Pinia状态管理的方法是什么”,在日常操作中,相信很多人在Vue之Pinia状态管理的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue之Pinia状态管理的方法是什么...
    99+
    2023-07-05
  • Java的线程状态是什么
    这篇文章主要介绍“Java的线程状态是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java的线程状态是什么”文章能帮助大家解决问题。Java的每个线程都具有自己的状态,Thread类中成员变量...
    99+
    2023-07-04
  • 服务器状态查询的方法是什么
    有多种方法可以查询服务器状态,以下是其中几种:1. 通过命令行工具查询:使用命令行工具(如ping、telnet、tracert等)...
    99+
    2023-06-10
    服务器状态 服务器
  • ps命令输出进程状态S+的含义是什么
    这篇文章主要介绍了ps命令输出进程状态S+的含义是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。最近发现一个问题,ps命令输出里面进程状态为S+的含义,网上好多文章都说是...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作