/ / Използване на команда shell в awk не работи - shell, awk

Използване на shell команда в awk не работи - shell, awk

Имам следния код в черупката.

Не работи. Така че не знам каква е моята грешка, питах се дали някой може да ми помогне

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

така $i е параметър например hi,hello, И ако броят на полетата е равен на 1, бих искал програмата да излезе.

Отговори:

2 за отговор № 1

Не можете да извикате изход през системата, защото awkсе изпълнява в отделен процес. Можете обаче да извикате изход от awk, с определен код за грешка и след това да излезете от скрипта в зависимост от кода за грешка. Пример:

awk -F "," "{if(NF==1){ print "Exiting"; exit -1}}" || exit

3 за отговор № 2

Awk не може да принуди родителския си процес да излезе, но можете да рефакторирате кода, така че извикващата обвивка да излезе.

В този ограничен контекст обаче изобщо нямате нужда от Awk.

case $i in
*,* ) ;; # nothing
* ) echo Exiting... >&2; exit 1;;
esac