首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

3分钟短文 | Linux 命令正确的退出方式:exit 0

引言 通常,在编写Bash脚本时,需要在满足特定条件时终止脚本,或者根据命令的退出代码采取措施。 在本文中,我们将介绍Bash exit内置命令和已执行命令的退出状态。 ?...退出状态 每个shell命令在成功终止时都会返回退出代码。 按照惯例,退出代码为零表示命令已成功完成,非退出代码为零表示遇到错误。 特殊变量$?...如果尝试ls在不存在的目录上运行,则退出代码将为非零: ls /nonexisting_dir &> /dev/null echo $? 结果输出 2。 状态代码可用于找出命令失败的原因。...此处,mkdir 仅在cd返回 0 时才执行命令: cd /opt/code && mkdir project 如果脚本结尾exit没有指定参数,则脚本退出代码是脚本中最后执行的命令的退出代码。 #!...下面是显示非脚本用户调用脚本时如何终止脚本的示例: ? 如果您以root用户身份运行脚本,则退出代码将为零。否则,脚本将以status退出1。

2K30

解决subprocess.CalledProcessError: Command ‘‘

Digraph.gv‘]' returned non-zero在使用Python的subprocess模块执行外部命令时,有时候会遇到​​CalledProcessError​​的异常,这个异常表示执行的命令返回一个非零的退出状态码...: Command '[‘dot‘, ‘-Tpdf‘, ‘-O‘, ‘Digraph.gv‘]' returned non-zero exit status 1.这个异常表示命令的退出状态码(returncode...)为非零。...检查Graphviz是否已正确安装在我们的例子中,我们使用​​dot​​命令来生成PDF格式的图形。这个命令是由Graphviz软件包提供的,用于生成各种类型的图形。...如果在执行命令时返回了非零的退出状态码,也会抛出异常。这里采用了try-except结构来捕获并处理异常,以便能够在发生错误时进行适当的错误处理。

96560
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    利用Git钩子实现代码发布

    如果脚本返回非零值,Git将放弃该补丁。你可以用该脚本来确保提交信息符合格式,或直接用脚本修正格式错误。 下一个在git am运行期间被调用的是pre-applypatch。...你可以用这个脚本运行测试或检查工作区。 如果有什么遗漏,或测试未能通过,脚本会以非零值退出,中断git am的运行,这样补丁就不会被提交。...你可以在推送开始之前,用它验证对引用的更新操作(一个非零的退出码将终止推送过程)。 Git的一些日常操作在运行时,偶尔会调用git gc --auto进行垃圾回收。...这些钩子脚本在推送到服务器之前和之后运行。 推送到服务器前运行的钩子可以在任何时候以非零值退出,拒绝推送并给客户端返回错误消息,还可以依你所想设置足够复杂的推送策略。...如果update脚本以非零值退出,只有相应的那一个引用会被拒绝;其余的依然会被更新。

    1.5K30

    轻度Linux服务器维护人员常用的Shell脚本命令

    command & 非控制台下后台模式运行脚本 nohup command & 查看shell当前处理的作业 jobs 重启停止的作业 bg 计划执行作业 at [-f filename] time...shell脚本结束设置退出状态码 exit return_number 命令行参数数量 echo $# 命令行最后一个参数 echo ${!...function name { commands } # or name() { commands } 退出函数并返回退出状态码 return,范围0~255 函数返回真实数据 function...| ARG2 如果没有参数是null或零值,返回ARG1;否则返回ARG2 ARG1 & ARG2 如果没有参数是null或零值,返回ARG1;否则返回0 ARG1 1小于ARG2...127 没找到命令 128 无效退出参数 128+x Linux信号x的严重错误 130 命令通过Ctrl+C终止 255 退出状态码越界 附录:test命令的数值比较功能 比较 描述 n1 -eq

    2.2K130

    8.3 自定义 Git - Git 钩子

    如果脚本返回非零值,Git 将放弃该补丁。 你可以用该脚本来确保提交信息符合格式,或直接用脚本修正格式错误。 下一个在 git am 运行期间被调用的是 pre-applypatch 。...你可以用这个脚本运行测试或检查工作区。 如果有什么遗漏,或测试未能通过,脚本会以非零值退出,中断 git am 的运行,这样补丁就不会被提交。...你可以在推送开始之前,用它验证对引用的更新操作(一个非零的退出码将终止推送过程)。 Git 的一些日常操作在运行时,偶尔会调用 git gc --auto 进行垃圾回收。...这些钩子脚本在推送到服务器之前和之后运行。 推送到服务器前运行的钩子可以在任何时候以非零值退出,拒绝推送并给客户端返回错误消息,还可以依你所想设置足够复杂的推送策略。...如果 update 脚本以非零值退出,只有相应的那一个引用会被拒绝;其余的依然会被更新。

    1.5K20

    Runtime源码解析(JDK1.8)

    此方法从不正常返回。可以将变量作为一个状态码;根据惯例,非零的状态码表示非正常终止。 * 虚拟机的关闭序列包含两个阶段。...在第一个阶段中,会以某种未指定的顺序启动所有已注册的关闭钩子(hook)(如果有的话),并且允许它们同时运行直至结束。 * 在第二个阶段中,如果已启用退出终结,则运行所有未调用的终结方法。...* 如果已经运行完关闭钩子,并且已启用退出终结 (on-exitfinalization),那么此方法将利用给定的状态码(如果状态码是非零值)暂停虚拟机;否则将无限期地阻断虚拟机。...* 如果指定的钩子先前已注册并且成功地取消注册,则返回 true,其他情况返回 false。...此方法从不正常返回。 * 应小心使用此方法。与 exit方法不同,此方法不会启动关闭钩子,并且如果已启用退出终结,此方法也不会运行未调用的终结方法。

    1.2K90

    Shell语法入门与实例——函数、exit命令

    exit命令 exit命令用于终止脚本的执行,并返回一个退出状态码。我们可以根据不同的退出状态码来判断脚本是否正常结束。...用法示例 正常退出: echo "脚本执行完毕" exit 0 上述代码在脚本执行完毕时会打印出"脚本执行完毕",并使用exit命令返回状态码0表示正常结束。...异常退出: if [ $# -lt 1 ] then echo "参数不足" exit 1 fi 以上代码检查传递给脚本的参数数量,如果少于1个则打印"参数不足"并使用exit命令返回状态码...echo "退出循环" exit 0 fi echo "您输入的数字是:$num" done 上述代码建立了一个无限循环,要求用户输入数字,如果输入0则退出循环并终止脚本执行...知识点讲解: exit命令用于终止脚本的执行。 返回一个标识脚本结束状态的退出状态码。 非零的退出状态码通常表示异常结束。 以上是关于Shell中函数和exit命令的详细讲解和案例。

    10210

    systemctl命令

    .: 检查是否有任何指定的单元处于活动状态,即正在运行,如果至少有一个处于活动状态,则返回退出代码0,否则返回非零,除非指定--quiet,否则这也会将当前单位状态打印到标准输出。....: 检查指定的单元是否处于失败状态,如果至少有一个失败,则返回退出代码0,否则返回非零,除非指定--quiet,否则这也会将当前单位状态打印到标准输出。 status [PATTERN......reset-failed [PATTERN...]: 重置指定单元的fail状态,或者如果没有传递单元名称,则重置所有单元的状态,当一个单元以某种方式发生故障(即进程带非零错误代码退出、异常终止或超时)...is-enabled NAME...: 检查是否启用了任何指定的单位文件(如启用),如果至少启用了一个,则返回退出代码0,否则返回非零,打印当前启用状态enabled、enabled-runtime、linked...Environment Commands show-environment: 转储systemd manager环境块,环境块将以适合源代码到shell脚本的直接形式转储,此环境块将传递给管理器生成的所有进程

    1.7K20

    【Linux】开始掌握进程控制吧!

    释放内核数据结构 但是task_struct会延期处理,因为终止的进程处于Z状态(僵尸进程) 2.2 进程终止的情况 我们的main函数常常会有一个返回值 0 ,那为什么要返回零呢???...表示最近一个进程的退出码),一般0表示正常运行,非零表示有问题。 父进程关心子进程的信息,想要知道子进程是否正常运行。...常见进程退出场景: 代码运行完毕,结果正确(正常结束进程) 代码运行完毕,结果不正确 代码异常终止,出现异常提前退出 就像:VS编程运行的时候,如果崩溃了 — 操作系统发现你的进程做了不应该做的事情,OS...(查看进程是否是正常退出) WEXITSTATUS(status): 若WIFEXITED非零,提取子进程退出码。...(查看进程是否是正常退出) WEXITSTATUS(status): 若WIFEXITED非零,提取子进程退出码。(查看进程的退出码) 对于第三个参数,就可以让父进程在等待的刚才中区做其他事情。

    10910

    Cypress web自动化34-cy.exec()执行系统命令

    将与现有系统环境变量合并 failOnNonZeroExit true 如果命令以非零代码退出是否失败 timeout execTimeout 超时时间默认60秒 返回结果 cy.exec() 执行之后...,结果返回以下属性的对象: code code为0 是成功 stdout 执行系统命令行输出内容 stderr 报错内容 使用示例 cy.exec() 为运行任意系统命令提供了一个退出功能,...适用于以下场景: 运行构建脚本 操作测试数据库 启动过程 杀死进程 运行构建命令 cy.exec('npm run build').then((result) => { // 生成result对象...20s没执行完成,那么就会失败 cy.exec('npm run build', { timeout: 20000 }) 选择在非零退出时不失败,并在代码和stderr上声明 cy.exec('man...cy.exec() 只会运行您已链接一次的断言,并且不会重试。

    97120

    【linux】进程创建与进程终止

    01.进程创建 #include pid_t fork(void); 返回值:自进程中返回0,父进程返回子进程id,出错返回-1 进程调用fork,当控制转移到内核中的fork代码后...: 释放曾经的代码和数据所占据的空间 释放内核数据结构 进程退出场景: 代码运行完毕,结果正确 代码运行完毕,结果不正确(这两点可以通过进程退出码判断) 代码异常终止 上面的代码,进程11258为父进程...非0(EXIT_FAILURE):通常表示有错误发生。具体的非零值可以用来指示不同类型的错误 异常终止 在操作系统中,进程的异常终止通常是由于一些错误或意外情况导致程序不能正常运行到结束。...常见于指针错误,如访问未初始化的指针、空指针或已释放的内存。 除零错误:程序尝试进行除以零的运算,这在数学运算中是未定义的。...如何终止 正常退出: main函数return,表示进程终止(非main函数,return,函数结束) 代码调用exit函数,注意:我们代码的任意位置调用exit,都表示进程退出 _exit(),系统调用

    10110

    【Linux】Linux进程控制——进程创建、进程终止及进程等待详解

    #include pid_t fork(void); 返回值:自进程中返回0,父进程返回子进程id,出错返回-1 进程调用fork,当控制转移到内核中的fork代码后,内核做: 分配新的内存块和内核数据结构给子进程...fork常规用法 一个父进程希望复制自己,使父子进程同时执行不同的代码段。例如,父进程等待客户端请求,生成子进程来处理请求。 一个进程要执行一个不同的程序。...fork调用失败的原因 系统中有太多的进程 实际用户的进程数超过了限制 ⭐进程终止 进程退出场景 代码运行完毕,结果正确 代码运行完毕,结果不正确 代码异常终止 代码运行完毕,结果正不正确看退出码;...代码异常终止时,看退出信号; 所以衡量一个进程的退出,我们只需要关注退出码(告诉父进程)和退出信号(os发出信号)。...(查看进程是否是正常退出) WEXITSTATUS(status): 若WIFEXITED非零,提取子进程退出码。

    14410

    进程控制

    #include pid_t fork(void); //返回值:子进程中返回0,父进程返回子进程id,出错返回-1 进程调用fork,当控制转移到内核中的fork代码后,内核做:...fork常规用法 一个父进程希望复制自己,使父子进程同时执行不同的代码段。例如,父进程等待客户端请求,生成子进程来处理请求。 一个进程要执行一个不同的程序。...fork调用失败的原因 系统中有太多的进程 实际用户的进程数超过了限制 进程终止 进程退出场景 代码运行完毕,结果正确 代码运行完毕,结果不正确 代码异常终止 进程常见退出方法 正常终止(可以通过 echo...查看进程退出码): 从main返回 调用exit _exit 异常退出: ctrl + c,信号终止 _exit函数 #include void _exit(int status)...(查看进程是否是正常退出) WEXITSTATUS(status): 若WIFEXITED非零,提取子进程退出码。

    72920

    第三十章 : 流程控制:whileuntil 循环

    和 if 一样, while 计算一系列命令的退出状态。只要退出状态为零,它就执行循环内的命令。在上面的脚本中,创建了变量 count ,并初始化为1。...第六次循环之后, count 的数值增加到6, test 命令不再返回退出状态零,且循环终止。程序继续执行循环之后的语句。...一旦 REPLY 等于“0”,则表示选择了“退出”选项,循环就会终止,程序继续执行 done 语句之后的代码。...在这个脚本版本中,我们设置了一个无限循环(就是自己永远不会终止的循环),通过使用 true 命令为 while 提供一个退出状态。因为 true 的退出状态总是为零,所以循环永远不会终止。...这个 read 命令读取每个文本行之后,将会退出,其退出状态为零,直到到达文件末尾。到时候,它的退出状态为非零数值,因此终止循环。也有可能把标准输入管道到循环中。 #!

    36710

    编程日记:PHP实用函数记录

    换句话说,如果超时默认是30秒,在脚本运行了25秒时调用 set_time_limit(20),那么,脚本在超时之前可运行总时间为45秒。如果设置为0(零),没有时间方面的限制。..., string version2 [, string PHP生成器 1.生成器语法 生成器函数看起来像普通函数——不同的是普通函数返回一个值,而生成器可以 yield 生成多个想要的值。...一旦不再需要产生更多的值,生成器可以简单退出,而调用生成器的代码还可以继续执行,就像一个数组已经被遍历完了。 2.yield关键字 生成器函数的核心是yield关键字。...它最简单的调用形式看起来像一个return申明,不同之处在于普通return会返回值并终止函数的执行,而yield会返回一个值给循环调用此生成器的代码并且只是暂停执行生成器函数。...在非阻塞模式下,调用 fgets(),总是会立即返回;而在阻塞模式下,将会一直等到从资源流里面获取到数据才能返回。

    2.7K20

    shell 循环命令

    文件扩展匹配是生成匹配指定通配符的文件名或路径名的过程。在不知道所有的文件名,这个特性在处理目录中的文件时就非常有用。...until 命令要求你指定一个通常返回非零退出状态码的测试命令。只有测试命令的退出状态码不为 0 ,bash shell 才会执行循环中列出的命令。...一旦测试命令返回了退出状态码 0 ,循环就结束了。...控制循环 有时我们在脚本中执行循环的过程中,我们需要根据特定的条件来及时的退出循环去执行其他的任务,所以我们要能够对循环进行条件上的控制,shell 中 break 命令,continue 命令能帮我们控制循环内部的情况...5.2. continue命令 continue 命令可以提前中止某次循环中的命令,但并不会完全终止整个循环。

    1.4K20

    Linux系统-进程控制

    Linux进程控制 零、前言 一、进程创建 1、fork函数 2、fork返回值 写时拷贝 3、fork用法 4、fork失败 二、进程终止 1、退出码 2、退出方法 1) 调用_exit函数 2)调用...零、前言 前篇我们讲解学习了关于进程的概念知识,本章主要讲解关于进程的控制,深入学习进程 一、进程创建 1、fork函数 概念: 在linux中fork函数从已存在进程中创建一个新进程(子进程)...我们一般以0表示代码成功执行完毕,以非0表示代码执行过程中出现错误,一般来说我们写的代码都不太规范,没有根据执行结果返回相应的退出码 注:退出码可以人为定义,也可以使用系统的错误码表...查看的是最近函数的退出码,一般来说都是0 2、退出方法 进程退出场景: 代码运行完毕,结果正确,退出码为0 代码运行完毕,结果不正确,逻辑存在问题,退出码为非0 代码异常终止,层序崩溃...): 若WIFEXITED非零,提取子进程退出码(查看进程的退出码) 参数options: 设置为0:表示默认的阻塞式等待子进程退出,即子进程没退出就不返回,一直等待到子进程退出回收子进程

    1.5K30

    【linux】进程等待与进程替换

    status:和 wait() 一样,用于存放子进程的终止状态。 options:可以控制 waitpid() 的行为,如 WNOHANG(非阻塞),不会等待子进程终止,立即返回。...返回非零值表示子进程正常退出,可以通过 WEXITSTATUS(status) 获取退出状态。 WEXITSTATUS(status): 在 WIFEXITED(status) 为真时使用。...WIFSIGNALED(status): 判断子进程是否因为未捕获信号而终止。 返回非零值表示子进程被信号终止,可以通过 WTERMSIG(status) 获取导致终止的信号编号。...返回非零值表示子进程被信号停止,可以通过 WSTOPSIG(status) 获取导致停止的信号编号。 WSTOPSIG(status): 在 WIFSTOPPED(status) 为真时使用。...返回非零值表示子进程接收到 SIGCONT 信号后继续执行,这个宏主要在系统支持 WCONTINUED 选项时使用。

    7510
    领券