sed命令在命令提示符下按预期工作,但在shell脚本中不起作用.
new_db_name=`echo "$new_db_name" | sed 's/$replace_string/$replace_with/'`
Run Code Online (Sandbox Code Playgroud)
为什么会这样,我该如何解决?
Del*_*ani 49
对sed表达式使用双引号.
new_db_name=`echo "$new_db_name" | sed "s/$replace_string/$replace_with/"`
Run Code Online (Sandbox Code Playgroud)
如果你使用bash,这应该工作:
new_db_name=${new_db_name/$replace_string/$replace_with}
Run Code Online (Sandbox Code Playgroud)
这对我使用 env 参数很有用。
export a=foo
export b=bar
echo a/b | sed 's/a/'$b'/'
bar/b
Run Code Online (Sandbox Code Playgroud)