在Linux中转义perl中的双引号

时间:2016-09-16 14:05:43

标签: regex perl escaping

它不让我回复评论所以在这里编辑,使用Linux作为操作系统。 我使用下面提到的门票创建,但-k参数,重复参数获取消息在" "如果有""在消息中,然后这些参数搞砸了,消息不会被转发。 如何在-k参数中转义这些双引号以使其通过? 提前致谢

config/test.exs

1 个答案:

答案 0 :(得分:2)

对我而言,引用shell插值变量的最简单方法是:

  1. 将其括在''
  2. 将所有'替换为'"'"'
  3. 所以替换

    $SEND_EVENT=`/opt/SendEvent/dist/SendEvent/SendEvent send -q "$TOOL" -a "$MSG_APPL" -n "$MSG_NODE_NAME" -p "$ESM_PROFILE" -s "$DSOM_SEV" -k "$DEDUPLICATION" -c "$MANAGEMENT_ID" -m "$LONG_TEXT" -t "ABC $SHORT_TEXT" -z "ABC" -y \"$DEFAULT_Q\"`  ;
    

    (my $quoted_DEDUPLICATION = $DEDUPLICATION) =~ s/'/'"'"'/g;
    $SEND_EVENT=`/opt/SendEvent/dist/SendEvent/SendEvent send -q "$TOOL" -a "$MSG_APPL" -n "$MSG_NODE_NAME" -p "$ESM_PROFILE" -s "$DSOM_SEV" -k '$quoted_DEDUPLICATION' -c "$MANAGEMENT_ID" -m "$LONG_TEXT" -t "ABC $SHORT_TEXT" -z "ABC" -y \"$DEFAULT_Q\"`  ;
    

    (并对所有其他参数执行相同操作)。

    或者,使用IPC :: System :: Simple :: capturex并传递数组中的所有参数。