转义 bash 变量以在“awk -v var=...”赋值中使用它的可靠方法

问题描述 投票:0回答:1

我正在寻找一种可靠的方法将 bash 变量传递给

awk
(通过
-v
),以便分配的
awk
变量将准确包含 bash 变量中的内容。

示例:

#!/bin/bash

bash_var='dir\t\010\out'

awk -v awk_var="$bash_var" 'BEGIN{ print awk_var }'

预期输出:

dir\t\010\out

我的猜测是,加倍反斜杠应该足够了,但我不能说对于任何字符串来说这仍然是正确的。有什么想法吗?

bash awk
1个回答
0
投票

是的,要输出反斜杠,您可以输入

\\
。代码可能看起来像这样:

#!/bin/bash
bash_var='dir\\t\\010\\out'
awk -v awk_var="$bash_var" 'BEGIN{ print awk_var }'
© www.soinside.com 2019 - 2024. All rights reserved.