linux - 可以让 awk 使用 `exit 2` 退出 bash 脚本吗?

标签 linux bash awk

根据 awk 脚本内的某些条件,我需要从 awk 脚本获取退出代码并将其传递给 bash 脚本,以便它可以退出,例如退出 2

如果我从 awk 调用 system("exit 2"),则 bash 脚本仍会以 0 退出。

问题

有什么想法可以将 $code 的值从 awk 获取到 bash 脚本吗?

#!/usr/bin/bash

# ...

awk '{
  # ...
  code=2
  # ...
}' /proc/loadavg

exit $code

最佳答案

下面是一个 shell 脚本示例:

awk -v code="2" 'BEGIN{exit code}'
shell_code=$?
echo $shell_code #just for seeing the code
exit $shell_code

上面的shell脚本将退出2,awk的变量code中的值

awk 单行语句也可以与输入文件一起使用,例如:

awk 'BEGIN{code=2} {if (something happens) exit code}' file

但是我认为你可以让 awk 输出一些值而不是退出一个值。然后将此 awk 输出分配给 shell 变量。您可以在 shell 脚本中决定是否要使用哪个值退出 shell 脚本,具体取决于 awk 输出。

关于linux - 可以让 awk 使用 `exit 2` 退出 bash 脚本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50531539/

相关文章:

linux - 如何在 bash 中通过脚本将第二行打印到输出中

windows - JMeter 命令行 - linux 版本 vs windows 版本

Bash:使用 FTP 检查远程目录是否存在

linux - 如何使用任何 Linux 工具打印 FILENAME 前面的每个文件的第 n(第 5)行?

regex - sed 插入/追加和打印模式空间

linux - 方法调用顺序混淆

linux - Grep for substring from piped output lookbehind assertion

bash - 一个简单的 if/else bash 脚本,它对用户的是/否输入使用react?

bash - 用破折号检查字符串的子字符串

linux - 同时执行 awk 和 sed 命令