Linux Unix系统命令退出代码

Linux Unix系统命令退出代码,linux,bash,unix,system,Linux,Bash,Unix,System,我试图使用Unix系统命令启动脚本,但收到以下错误消息 sh:location/script.ksh:没有这样的文件或目录 错误消息是预期的,但我不知道如何使系统命令在失败时退出 下面是我使用的代码,有没有人知道我哪里出错了,或者我遗漏了什么 elif [ ${VAR} -gt 0 ]; then **grep for string** | awk -v job_text="${VAR2}" \ -v job_seq_no=0 \ 'BEGIN { FS = ";" } ; \ { comma

我试图使用Unix系统命令启动脚本,但收到以下错误消息

sh:location/script.ksh:没有这样的文件或目录

错误消息是预期的,但我不知道如何使系统命令在失败时退出

下面是我使用的代码,有没有人知道我哪里出错了,或者我遗漏了什么

elif [ ${VAR} -gt 0 ]; then

**grep for string** |
awk -v job_text="${VAR2}" \
-v job_seq_no=0 \
'BEGIN { FS = ";" } ; \
{ command_pos=index($1,job_text)+length(job_text) } ;\
                      { job_seq_no++ } ; \
                      { system (substr($1,command_pos,length($1)-command_pos))}'
如果这是一个愚蠢的问题或者不可能,我不是一个很好的编剧

提前谢谢


Cameron

您是否要退出脚本?您需要注意awk中系统的返回值,然后将其作为awk的退出状态报告给shell。只需将系统返回的值存储在变量中,并将该变量作为参数传递给exit。举个简单的例子,请考虑:

$ cat a.sh
#!/bin/bash

if echo "$1" | awk '{r=system $0} END {exit r}'; then
        echo awk succeeded
else
        echo awk failed >&2
        exit 1
fi

$ ./a.sh false
awk failed
$ ./a.sh true
awk succeeded
如果您只想退出awk,可以使用

awk '{r=system (...); if (r!=0){exit r}}'

这些信息远远不够任何人提供帮助。什么
系统
命令?您发布的代码中没有
system
命令<代码>位置/script.ksh
?!?!这是从哪里来的?非常感谢William,使用这个“{r=system(…);如果(r!=0){exit r}}”,系统现在识别出退出代码应该是127,并相应地失败。感谢您花时间回复!