为什么(退出1)不退出脚本?

极小值

我有一个脚本,当我想要它时不会退出。

具有相同错误的示例脚本是:

#!/bin/bash

function bla() {
    return 1
}

bla || ( echo '1' ; exit 1 )

echo '2'

我假设看到输出:

:~$ ./test.sh
1
:~$

但我实际上看到了:

:~$ ./test.sh
1
2
:~$

()命令链是否以某种方式创建作用域?什么是exit退出了,如果不是脚本?

吉米吉

()在子Shell中运行命令,因此exit您将退出子Shell并返回到父Shell。{}如果要在当前shell中运行命令,请使用花括号

从bash手册:

(列表)列表在子shell环境中执行。在命令完成后,影响外壳环境的变量分配和内置命令将保持无效。返回状态是列表的退出状态。

{ 列表; } list仅在当前的shell环境中执行。列表必须以换行符或分号终止。这称为组命令。返回状态是列表的退出状态。请注意,与元字符(和)不同,{和}是保留字,并且必须出现在允许识别保留字的位置。由于它们不会造成单词中断,因此必须使用空格或其他shell元字符将它们与list分开。

值得一提的是,shell语法非常一致,并且子shell也参与了其他()结构,例如命令替换(也使用旧式`..`语法)或进程替换,因此以下内容也不会从当前shell退出:

echo $(exit)
cat <(exit)

当将命令显式放置在内部时()很可能会涉及到子外壳,但鲜为人知的事实是,它们也在以下其他结构中生成:

  • 命令在后台启动

    exit &
    

    不会退出当前shell,因为(之后man bash

    如果命令由控制操作符&终止,则外壳程序将在子外壳程序的后台执行该命令。外壳程序不等待命令完成,返回状态为0。

  • 管道

    exit | echo foo
    

    仍然仅从子shell退出。

    但是,不同的外壳在这方面的行为有所不同。例如bash,将管道的所有组件放入单独的子外壳中(除非您lastpipe在未启用作业控制的调用中使用该选项),而是将AT&Tkshzsh在当前外壳中运行最后一部分(POSIX允许两种行为)。因此

    exit | exit | exit
    

    在bash中基本上不执行任何操作,但是由于last的 原因而从zsh退出exit

  • coproc exit也可以exit在子外壳中运行

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

困惑为什么脚本不退出

来自分类Dev

为什么此bash脚本不退出?

来自分类Dev

不退出 shell 脚本

来自分类Dev

为什么这个循环不退出

来自分类Dev

为什么异常不退出程序?

来自分类Dev

为什么红宝石循环不退出

来自分类Dev

为什么CTRL + C不退出vim?

来自分类Dev

为什么我的 if/else 不退出循环?

来自分类Dev

为什么进程不退出以及如何使其退出

来自分类Dev

为什么在Javascript中重定向后不退出/死掉脚本?

来自分类Dev

为什么此Perl脚本在60秒后不退出或消失?

来自分类Dev

发送退出代码而不退出脚本

来自分类Dev

TCSH脚本不退出

来自分类Dev

CasperJS脚本永不退出

来自分类Dev

为什么当条件= false时while循环不退出

来自分类Dev

为什么输入“ q”后我的程序不退出?

来自分类Dev

为什么当条件= false时while循环不退出

来自分类Dev

为什么在输入$后不退出while循环

来自分类Dev

为什么服务器程序不退出?

来自分类Dev

在脚本中退出bash命令而不退出脚本

来自分类Dev

在脚本中退出bash命令而不退出脚本

来自分类Dev

为什么右键不退出而其他键又退出了?Tasm涡轮组装机

来自分类Dev

从菜单中调用退出脚本而不退出菜单

来自分类Dev

从菜单中调用退出脚本而不退出菜单

来自分类Dev

子脚本之一失败时不退出bash脚本

来自分类Dev

当主机关闭时,为什么scala swing app不退出?

来自分类Dev

当我在android中按回时为什么不退出该应用程序?

来自分类Dev

为什么使用Tcplistener传入迭代器时for循环不退出

来自分类Dev

为什么返回next(err)时,猫鼬查询中的catch()块不退出功能?

Related 相关文章

热门标签

归档