Bil*_*ill 5 bash awk backslash command-substitution
我试图逃避AWK的反斜杠.这是我想要做的一个例子.
说,我有一个变量
$echo $a
hi
Run Code Online (Sandbox Code Playgroud)
以下作品
$echo $a | awk '{printf("\\\"%s\"",$1)'}
\"hi"
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用命令替换将相同命令的输出保存到变量时,我收到以下错误:
$ q=`echo $a | awk '{printf("\\\"%s\"",$1)'}`
awk: {printf("\\"%s\"",$1)}
awk: ^ backslash not last character on line
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么命令替换打破了AWK.非常感谢你的帮助.
尝试这个:
q=$(echo $a | awk '{printf("\\\"%s\"",$1)}')
Run Code Online (Sandbox Code Playgroud)
$ a=hi
$ echo $a
hi
$ q=$(echo $a | awk '{printf("\\\"%s\"",$1)}')
$ echo $q
\"hi"
Run Code Online (Sandbox Code Playgroud)
会的,只是会变得更加混乱。
q=`echo $a | awk '{printf("\\\\\"%s\"",$1)}'`
Run Code Online (Sandbox Code Playgroud)
$ b=hello
$ echo $b
hello
$ t=`echo $b | awk '{printf("\\\\\"%s\"",$1)}'`
$ echo $t
\"hello"
Run Code Online (Sandbox Code Playgroud)