Избегайте обратной косой черты в переменной - PullRequest
1 голос
/ 28 февраля 2012

Я использую sed для замены URL-адресов в файле, все отлично работает, просто сбой, когда URL-адрес содержит '\'

пример URL: http **: //www.example.com/simi/icr

# variables
ICR_KEY=somekey
ICR_KEY_VAL="http\://www.example.com/simi/icr"
sed "s!${ICR_KEY}=.*!${ICR_KEY}=${ICR_KEY_VAL}!" properties > tmp

Это заменяет URL, но вывод не содержит обратную косую черту из значения переменной.

1 Ответ

1 голос
/ 28 февраля 2012

И bash, и sed интерпретируют обратную косую черту как escape-символ.Используйте одинарные кавычки, чтобы предотвратить это для bash, и удвойте обратную косую черту для sed:

ICR_KEY_VAL='http\\://www.example.com/simi/icr'
...