1

我在 shell 中有以下代码。

这没用。所以我不知道我的错误是什么我想知道是否有人可以帮助我

echo $i | awk -F "," '{if(NF == 1) print "Exiting..." system("exit")}'

$i例如,参数也是如此hi,hello。如果字段数等于 1,我希望程序退出。

4

2 回答 2

3

awk 不能强制其父进程退出,但您可以重构代码以便调用 shell 退出。

不过,在这种有限的情况下,您根本不需要 Awk。

case $i in
  *,* ) ;; # nothing
  * ) echo Exiting... >&2; exit 1;;
esac
于 2013-10-21T16:42:15.040 回答
2

您不能通过系统调用 exit,因为 awk 在单独的进程中执行。但是,您可以使用指定的错误代码从 awk 调用 exit,然后根据错误代码退出脚本。例子:

awk -F "," '{if(NF==1){ print "Exiting"; exit -1}}' || exit
于 2013-10-21T16:44:27.303 回答