【发布时间】:2016-04-29 20:51:39
【问题描述】:
我正在尝试学习 bash 参数替换并且有一个非常基本的问题:
为什么会这样:
#!/bin/sh
v1="-E"
v2="s/./x/g"
sed "$v1" "$v2" <<<"abc" # result = "xxx"
但这不起作用:
#!/bin/sh
v1="-E"
v2="s/./x/g"
sed "$v1 $v2" <<<"abc" # result = "sed: illegal option..."
我正在使用 Mac OS X bash。
【问题讨论】:
-
你应该像这样引用正则表达式
sed "$v1 '$v2'" <<<"abc" -
我试过了,它给出了同样的错误信息。
-
@scolfax 你应该了解分词:mywiki.wooledge.org/WordSplitting
-
分词、多种扩展、指挥变电站...很多好东西要学。感谢您的链接。
标签: bash parameters substitution