如何将 bash 变量传递给 awk 脚本

How to pass bash variables to awk script

# My vars 
  index=test
  type=book

我正在尝试将这些变量传递给 awk

  awk -v index="$index" -v type="$type" 'BEGIN{print "{\"create\": {\"_index\":\"index\", \"_type\":\"type\"}}"}; {print}; END {printf "\n"}'

期望的输出

{"create": {"_index":"test", "_type":"book"}}

不要在字符串中嵌入变量:

awk -v idx="$index" -v type="$type" 'BEGIN{print "{\"create\": {\"_index\":\"" idx "\", \"_type\":\"" type "\"}}"} {print} END {print ""}'

您不能使用 index 作为 awk 变量名,顺便说一句,因为那是 awk 函数的名称。