我有一个bash函数,该函数带有两个参数并调用awk命令。
在主脚本中的另一个awk命令中调用该函数。
问题是该函数内部awk中的“ if”条件不起作用。
$ 2 == obj在下面的代码中不起作用。如果给出“文字”值,则可以正常工作。
function func1() {
APPNAME=$1
OBJ_TYPE=$2
while read -r next_obj
do
<Command> ${APPNAME} | grep "$OBJ_TYPE" | awk -v APPNAME="$APPNAME" -v obj="${next_obj}" '$2==obj {print APPNAME}'
done < <input File>
}
export -f func1
<Command> | grep -iv ok | awk -v OBJ_TYPE="$OBJ_TYPE" '{ if ($2 == "started") { system("func1 " $1" "OBJ_TYPE) } }'