本文介绍了在Bash脚本中调用gawk的奇怪返回值&134&q;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Bash脚本中使用Gawk时遇到了一个非常奇怪的问题。

在此脚本中,我使用一个函数进行一些文本处理。即使是非常简单的gawk命令也会返回错误134。

 #!/bin/bash

 testFunc()
 {
   log "Before gawk: $?"
   gawk '{print}' file
   log "After gawk: $?"
 }

如果我在控制台中手动运行此脚本,它将完美运行。$?将始终为0,表示成功,但是如果我在etc/rc.d/中将此脚本用作3级的Linux启动脚本,则在执行gawk之后,$?始终为134。134是什么意思?

如果我将gawk '{print}' file替换为gawk --version,结果是正常的。$?为0。

推荐答案

退出代码134表示您的程序已中止(收到SIGABRT),可能是因为断言失败。

(正如@Hobbs在下面的注释中解释的那样,您可以从退出代码中减去128以映射到列表中的SIGABRT。)您可能需要提供log命令的完整路径和file的完整路径。

这里是命令信号列表kill

kill -l

 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL
 5) SIGTRAP      6) SIGABRT      7) SIGEMT       8) SIGFPE
 9) SIGKILL     10) SIGBUS      11) SIGSEGV     12) SIGSYS
13) SIGPIPE     14) SIGALRM     15) SIGTERM     16) SIGUSR1
17) SIGUSR2     18) SIGCHLD     19) SIGPWR      20) SIGWINCH
21) SIGURG      22) SIGIO       23) SIGSTOP     24) SIGTSTP
25) SIGCONT     26) SIGTTIN     27) SIGTTOU     28) SIGVTALRM
29) SIGPROF     30) SIGXCPU     31) SIGXFSZ     32) SIGWAITING
33) SIGLWP      34) SIGFREEZE   35) SIGTHAW     36) SIGCANCEL
37) SIGLOST     38) SIGXRES     41) SIGRTMIN    42) SIGRTMIN+1
43) SIGRTMIN+2  44) SIGRTMIN+3  45) SIGRTMAX-3  46) SIGRTMAX-2
47) SIGRTMAX-1  48) SIGRTMAX

这篇关于在Bash脚本中调用gawk的奇怪返回值&134&q;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-18 03:15