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    
}

私に何が起こっているのでしょうか?本当にありがとう!

4

1 に答える 1

1


問題はと//に あると思います。区切り文字 で問題が発生します$line_old$line_new
sed

作業用のファイルがあればいいのですが、道を譲ることができます。たとえば、さまざまな区切り文字
を使用できます。sed

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

詳細はこちら

于 2012-07-22T14:52:51.733 に答える