我在shell中有以下代码。
它不起作用。所以我不知道我的错误是什么,我想知道是否有人可以帮助我
echo $i | awk -F "," '{if(NF == 1) print "Exiting..." system("exit")}'
所以$i
是一个参数,例如hi,hello
。如果字段数等于1,我希望程序退出。
答案 0 :(得分:3)
awk无法强制其父进程退出,但您可以重构代码以便调用shell退出。
在这种有限的背景下,你根本不需要Awk。
case $i in
*,* ) ;; # nothing
* ) echo Exiting... >&2; exit 1;;
esac
答案 1 :(得分:2)
您无法通过系统调用exit,因为awk是在单独的进程中执行的。但是,您可以使用指定的错误代码调用awk的exit,然后根据错误代码退出脚本。例如:
awk -F "," '{if(NF==1){ print "Exiting"; exit -1}}' || exit