【发布时间】:2012-05-08 04:12:13
【问题描述】:
为什么会这样:
这个
var=hello
myvar=`echo hello hi | awk "{ if (\\\$1 == \"$var\" ) print \\\$2; }"`
echo $myvar
给予
hi
但这不是吗?
这个
var=hello
echo hello hi | awk "{ if (\\\$1 == \"$var\" ) print \\\$2; }"
给予
awk: cmd. line:1: Unexpected token
我正在使用
GNU bash,版本 4.1.5(1)-release (i486-pc-linux-gnu)
在
Linux 2.6.32-34-generic-pae #77-Ubuntu SMP Tue Sep 13 21:16:18 UTC 2011 i686 GNU/Linux
【问题讨论】:
-
你可以试试这两个代码。您将看到第二个错误。
-
这不是 SO 的工作方式。格式良好的问题包括对您的目标的解释以及不符合您期望的结果。人们可能会尝试您的代码,但您需要完全解释您的问题。
-
好的,我编辑了我的问题并添加了我得到的输出。
-
我得到一个不同的错误:
backslash not last character on line。在命令之前尝试set -x,在命令之后尝试set +x,以查看变量替换和反斜杠评估等工作原理。 -
@DennisWilliamson Ok 会尝试的。谢谢。