标签: exit-code

批量退出时指定退出码

当它成功退出时,我需要在我的批处理脚本中指定我自己的退出代码 ifexist 子句。您会注意到,我将其指定为exit 5,我也尝试过exit /b 5但没有任何效果。有什么建议?

@ECHO OFF
CLS

set SOURCE_PARENT=%1
set FOLDER=%2
set TARGET_FILE=%3

net use S: %SOURCE_PARENT% 
net use T: %TARGET_FILE%

if exist T:\%FOLDER% (
  echo Folder exists, process exiting
  net use S: /Delete /y
  net use T: /Delete /y
  exit 5
) else (
  mkdir T:\%FOLDER%
)

xcopy S:\%FOLDER% T:\%FOLDER% /E /I /H

net use S: /Delete /y
net use T: /Delete /y

exit
Run Code Online (Sandbox Code Playgroud)

batch-file exit-code

4
推荐指数
1
解决办法
2401
查看次数

如何在Shell脚本中捕获exit 1信号?

我想尝试捕获信号 1 但失败

#!/bin/bash
# capture an interrupt # 0
trap 'echo "Exit 0 signal detected..."' 0
trap 'echo "Exit 1 signal detected..."' SIGHUP

# display something
echo "This is a checkpoint 1"
exit 1

echo "This is checkpoint 2"
# exit shell script with 0 signal
exit 0

Output--
kithokit@15:02:55 trunk (master) $ ./test.sh 
This is a checkpoint 1
Exit 0 signal detected...
kithokit@15:03:44 trunk (master) $ 
Run Code Online (Sandbox Code Playgroud)

即使是退出1,它总是陷入陷阱0,有人知道如何解决这个问题吗?

谢谢

shell signals exit-code bash-trap

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

C#中EXIT_SUCCESS和EXIT_FAILURE的等价物是什么?

我正在启动一个进程,并希望检查其退出代码是否成功.

Process myProcess = new Process();

myProcess.Start();

myProcess.WaitForExit();

// What should i put instead of EXIT_SUCCESS ?
if (myProcess.ExitCode == EXIT_SUCCESS) 
{
  // Do something
}
Run Code Online (Sandbox Code Playgroud)

EXIT_SUCCESS 似乎不存在,C#中是否存在等效或规范的方式来检查零?

.net c# process exit-code

4
推荐指数
2
解决办法
1429
查看次数

为什么程序返回的是除我指定的退出代码?

这是一个简单的程序:

int main() {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

退出代码是0.

如果我写:

int main() {
    return 700;
}
Run Code Online (Sandbox Code Playgroud)

退出代码是188.

为什么188不是700退出代码在这里?

c exit-code

4
推荐指数
1
解决办法
145
查看次数

管道进入 grep -v 时获取退出代码

我有一个这样的脚本:

#!/bin/sh

echo "hello"
echo "goodbye"
exit 1
Run Code Online (Sandbox Code Playgroud)

当我自己运行它时,我得到了我预期的失败退出代码。

$ ./fail.sh
hello
goodbye
$ echo $?
1
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时grep -v,退出状态更改为成功:

$ ./fail.sh | grep -v hello
goodbye
$ echo $?
0
Run Code Online (Sandbox Code Playgroud)

有没有办法将命令的输出通过管道输入grep -v并仍然正确传播状态代码?当然,在现实世界中,这样做的目的是过滤嘈杂命令的输出,同时仍然检测命令是否失败。

bash grep exit-code

4
推荐指数
1
解决办法
4227
查看次数

GNU netcat 退出代码总是 1?

我尝试在脚本中使用 netcat 的 GNU 变体,但即使一切正常,它也总是返回退出代码 1。这是我的案例的一步一步:

  1. 跑步nc -l 127.0.0.1 -p 7000
  2. 跑步nc 127.0.0.1 7000
  3. 在客户端 nc 上按 ctrl+c
  4. 服务器 nc 始终返回 1

它使我无法检测 bash 脚本中的套接字绑定错误。准确地说,它是来自 Arch linux 的 GNU netcat。当地址正在使用时,Arch 的 BSD netcat 不会因套接字绑定错误而失败,所以它也好不了多少......

linux bash shell exit-code netcat

4
推荐指数
1
解决办法
4541
查看次数

如何从 PowerShell 脚本获取退出代码

我正在尝试编写一个 PowerShell 脚本,每当我们的构建系统无法将 Docker 映像推送到 Docker Hub 时,该脚本都会发送 Slack 通知。如何检测并处理Process exited with code 1命令docker push?我已尝试以下操作,但未catch调用该块。

try {
  docker push $dockerImage;
}catch{
  #Send error details to Slack
}
Run Code Online (Sandbox Code Playgroud)

error-handling powershell try-catch exit-code

4
推荐指数
1
解决办法
4646
查看次数

使用 jq 进行条件输出

我有如下 JSON 输入。

  • {"value":{"error":"no such element","message":"no such element: xxx"}
  • {"value":null}

对于第二种情况,我想使用jqreturn 退出状态为 0(不打印任何内容),并打印no such element: xxx到 stderr 并为第一种情况返回退出状态 1。

我怎样才能实现这一目标jq

json exit-code jq

4
推荐指数
1
解决办法
1201
查看次数

如果有警告,则使“cargo doc”失败

我想在 CI 中进行测试,测试cargo doc成功且没有任何警告。如果出现警告,有什么方法可以cargo doc以非零退出代码退出吗?

testing documentation exit-code rust rust-cargo

4
推荐指数
1
解决办法
886
查看次数

boost :: thread退出代码?

从boost :: thread获取退出代码的标准方法是什么?
这些文档似乎根本没有触及这个主题.

multithreading boost exit-code

3
推荐指数
1
解决办法
3620
查看次数