逃避变量中的反斜杠

时间:2012-02-28 18:03:52

标签: shell backslash

我使用sed替换文件中的url,当url包含'\'时,一切正常打嗝

exmaple url:http * * ://www.example.com/simi/icr

# variables
ICR_KEY=somekey
ICR_KEY_VAL="http\://www.example.com/simi/icr"
sed "s!${ICR_KEY}=.*!${ICR_KEY}=${ICR_KEY_VAL}!" properties > tmp

这将替换URL,但输出不包含变量值的反斜杠。

1 个答案:

答案 0 :(得分:1)

bash和sed都将反斜杠解释为转义字符。使用单引号来阻止bash,并加倍sed的反斜杠:

ICR_KEY_VAL='http\\://www.example.com/simi/icr'