标签: exit-code

在bash shell脚本中将管道与退出状态组合在一起

我有这个bash shell-script命令,如果make成功(以零退出状态终止)导致日期运行,反之亦然:

make && date
Run Code Online (Sandbox Code Playgroud)

但现在我想处理它的输出,例如

make | sed s/a/A/
Run Code Online (Sandbox Code Playgroud)

如果我做

make | sed s/a/A/ && date
Run Code Online (Sandbox Code Playgroud)

即使make失败,日期也会运行.

如果我改为做

make && date | sed s/a/A/
Run Code Online (Sandbox Code Playgroud)

sed的过程日期的输出,而不是化妆的.

你知道任何解决方案吗?谢谢!


PS我试过这些:

(make | sed s/a/A/) && date
Run Code Online (Sandbox Code Playgroud)

make失败时,日期仍会运行.

(make && (date > /dev/null)) | sed s/a/A/
Run Code Online (Sandbox Code Playgroud)

make成功时,日期不会运行.

bash shell pipe exit-code

9
推荐指数
2
解决办法
2763
查看次数

Linux:从kill命令获取退出代码

如果我SIGTERM使用该kill命令向进程发送信号,我期望退出代码,但在终止进程后运行以下命令时总是得到0(零):

echo $?
Run Code Online (Sandbox Code Playgroud)

根据这篇文章中的答案,我在发送SIGTERM一个进程时应该得到143 :始终应用Java结束"退出143"Ubuntu

但我没有得到退出代码.为什么?

linux kill exit-code sigterm

9
推荐指数
1
解决办法
1万
查看次数

Grep中的退出代码在Makefile中

我想在Makefile中检查grep搜索的结果.与此解决方案相反,我不希望使用shell命令.另外,当grep找不到字符串时,我不希望Makefile引发错误(退出代码为1被视为错误).

以下尝试忽略该错误并检查退出代码:

all:
    -grep term log* 
    echo $$?
    @case "$$?" in \
      0)\
    echo "found";; \
    *) \
    echo "not found";;\
    esac;
Run Code Online (Sandbox Code Playgroud)

不幸的是,退出代码始终为0.

grep makefile exit-code

9
推荐指数
1
解决办法
5569
查看次数

是否有可能在具有特定错误代码的线程退出时中断?

我想知道是否可以配置visual studio 2008调试器以在线程以精确错误代码(或至少任何非零值)退出时停止执行.我的应用程序使用了大量的线程,因此无法手动跟踪它们.

当程序中的任何线程命中"exit(X);"时,有没有办法告诉VS2008中断?(X与0不同)和显示源?

multithreading exit-code visual-studio-2008 visual-studio-debugging

9
推荐指数
1
解决办法
3016
查看次数

Android是否关心传递给System.exit(...)的退出状态代码?

如果我杀了一个Android应用程序System.exit(...),我传递的状态代码是否重要?我找不到任何关于Android是否会忽略它的文档,或者某些文档是否会导致任何错误消息或具有任何其他含义.

java android exit-code system.exit

9
推荐指数
1
解决办法
2785
查看次数

findstr退出代码/ errorlevel

我有一个正在使用的程序,findstr当找到字符串时errorlevel返回0,当找不到字符串时errorlevel返回1.好吧,我可以解决这个问题.

问题出在哪里,我找不到任何关于每个errorlevel方法的官方文件findstr.我需要知道,如果别的了findstr所能返回errorlevel1,或者如果它只返回1时找不到字符串.

如果有"官方"文档的链接是首选,但任何输入都将非常感谢.

提前致谢!

cmd exit-code errorlevel findstr

9
推荐指数
1
解决办法
2万
查看次数

在Bash中退出陷阱代码

这是myscript.sh:

#!/bin/bash

function mytrap {
    echo "Trapped!"
}
trap mytrap EXIT

exit 3
Run Code Online (Sandbox Code Playgroud)

当我运行它:

> ./myscript.sh
echo $?
3
Run Code Online (Sandbox Code Playgroud)

为什么脚本的退出代码与陷阱的退出代码相同而没有它?通常,函数隐式返回最后执行的命令的退出代码.在这种情况下:

  1. echo返回0
  2. 我希望mytrap能回归0
  3. 由于mytrap是最后执行的函数,脚本应返回0

为什么不是这样?我的想法错在哪里?

bash signals exit-code bash-trap

9
推荐指数
1
解决办法
4002
查看次数

从subshel​​l返回值并输出到局部变量

我发现了我的奇怪行为,我无法解释.以下代码工作正常:

function prepare-archive {
blah-blah-blah...
_SPEC_FILE=$(check-spec-file "$_GIT_DIR/packaging/")
exit $?
blah-blah-blah...
}
Run Code Online (Sandbox Code Playgroud)

意味着我得到了我期望的价值:

bash -x ./this-script.sh:
++ exit 1
+ _SPEC_FILE='/home/likern/Print/Oleg/print-service/packaging/print-service.spec
/home/likern/Print/Oleg/print-service/packaging/print-service2.spec'
+ exit 1
Run Code Online (Sandbox Code Playgroud)

只要我local向变量添加定义:

local _SPEC_FILE=$(check-spec-file "$_GIT_DIR/packaging/")
Run Code Online (Sandbox Code Playgroud)

我得到以下:

bash -x ./this-script.sh:
++ exit 1
+ local '_SPEC_FILE=/home/likern/Print/Oleg/print-service/packaging/print-service.spec
/home/likern/Print/Oleg/print-service/packaging/print-service2.spec'
+ exit 0
$:~/MyScripts$ echo $?
0
Run Code Online (Sandbox Code Playgroud)

问题:为什么?发生了什么事?我可以捕获从subshel​​l到local变量的输出并可靠地检查subshel​​l的返回值吗?

PS:prepare-archive在主shell脚本中调用.第一个exitexitfrom check-spec-file函数,第二个是prepare-archive函数 - 这个函数本身是从main shell脚本执行的.我从返回值check-spec-fileexit 1,那么通过这个值exit $?.因此我希望它们应该是一样的.

bash exit-code bash-function

8
推荐指数
2
解决办法
5899
查看次数

是否有完整的JVM退出代码列表

我正在寻找所有可能的jvm退出代码(不是java System.exit(x))的完整列表.我使用搜索引擎唯一能找到的是SIGTERM退出代码列表:http://journal.thobe.org/2013/02/jvms-and-kill-signals.html.我想知道是否有针对未捕获的异常的特定退出代码?

jvm exit-code

8
推荐指数
1
解决办法
1万
查看次数

从shell脚本中的php脚本中检索退出状态

我有一个bash shell脚本,可以像这样调用一些PHP脚本.

#!/bin/bash

php -f somescript.php

php -f anotherscript.php
Run Code Online (Sandbox Code Playgroud)

我想根据这些脚本的结果撰写错误日志和/或活动报告.

有什么办法可以在shell脚本中获取php脚本的退出状态吗?

我可以使用整数退出状态或字符串消息.

php bash shell exit-code

8
推荐指数
2
解决办法
9071
查看次数