shell: Using sed in backticks

前端 未结 3 710
甜味超标
甜味超标 2021-01-06 14:00

I want to escape some special chars inside a string automatically. I thought of echoing that string and pipe it through some seds. This doesn\'t seem to work inside of backt

3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-01-06 14:28

    You need to escape the backslashes between the backticks.

    FOO=`echo "foo[bar]" | sed 's/\\[/\\\\[/g'` && echo $FOO
    

    Alternatively, use $() (this is actually the recommended method).

    FOO=$(echo "foo[bar]" | sed 's/\[/\\[/g') && echo $FOO
    

提交回复
热议问题