1

我正在组装的 bash 脚本存在一些问题。

$2是在启动期间提供的类似于“line_old”的字符串。sed 死于

sed: -e expression #1, char 15: unterminated address regex

这是我的代码片段:

redisconfig ()
{
    CMD="ssh -q -t -i $HOME/.ssh/amazon-key.pem ubuntu@10.20.10.1"

    line_old="ENV['REDIS_URL'] = 'redis://redis:X9g532mq21yY4@ip-10-112-143-152.us-west-2.compute.internal:6379'"

    line_new="ENV['REDIS_URL'] = 'redis://redis:X9gKQasdg2yY4@$2:6379'"

    updateconfig="$($CMD sed "/$line_old/c\$line_new/" /home/ubuntu/config/testing.rb)"

    results="$($CMD grep 'REDIS_URL' /home/ubuntu/config/testing.rb)"

    echo $updateconfig

    echo $results    
}

知道我的 sed 会发生什么吗?非常感谢!

4

1 回答 1

1


我认为问题出//$line_oldand $line_new
它会导致sed分隔符出现问题

我希望我有你的文件来处理它,但我可以给你方法:
你可以使用sed不同的分隔符,例如:

$ echo 'foo' | sed s#foo#bar#
bar

更多在这里

于 2012-07-22T14:52:51.733 回答