如何在双引号内使用awk变量?

时间:2018-05-23 06:57:06

标签: awk

我定义了以下shell变量:

memory_params="some memmory params"
class_path="some class path"
class_name="some class name"

现在,我在awk中使用这些bash变量

awk -v var1="${memory_params}" \
    -v var2="${class_path}" \
    -v var3="${class_name}" \
  '{ 
     cmd="java var1 -cp var2 var3";
     system(cmd);  
   }'

但是,由于显而易见的原因,这并没有取var1var2var3的值。如何在双引号内使用awk变量?

2 个答案:

答案 0 :(得分:2)

尝试一次,让我知道这是否有帮助。直接在system命令中使用变量,而不是创建变量并将其传递给system

awk -v var1="${memory_params}" \
    -v var2="${class_path}" \
    -v var3="${class_name}" \
  BEGIN'{ 
     system("java " var1 " -cp " var2 OFS var3);  
   }'

如果您要阅读BEGIN,请删除Input_file

答案 1 :(得分:0)

在我用来解决问题的命令下面,我也遇到过相同的情况。

database_impala = test_db awk -v var =“ $ {database_impala}”'{print var“。” $ 0}'