猿问

sed脚本中的Shell变量

sed命令在命令提示符下按预期工作,但在Shell脚本中不起作用。


new_db_name=`echo "$new_db_name" | sed 's/$replace_string/$replace_with/'`

为什么会这样,我该如何解决?


慕田峪7331174
浏览 1012回答 3
3回答

白猪掌柜的

在sed表达式中使用双引号。new_db_name=`echo "$new_db_name" | sed "s/$replace_string/$replace_with/"`

千巷猫影

如果您使用bash,这应该可以工作:new_db_name=${new_db_name/$replace_string/$replace_with}

呼如林

伙计们:我使用以下代码使用sed将bash变量传递给bash脚本中的函数。即,我将bash变量传递给sed命令。#!/bin/bash                            function solveOffendingKey(){    echo "We will delete the offending key in file: $2, in line: $1"    sleep 5    eval "sed -i '$1d' $2"}line='4'file=~/ivan/known_hostssolveOffendingKey $number $file亲切的问候!
随时随地看视频慕课网APP
我要回答