Это должно быть то, что вам нужно:
- Использование двойных кавычек для включения команды
sed
, - , чтобы вы могли использовать в ней одинарные кавычки;
- избегайте обратных кавычек, чтобы избежать расширения.
sed "s/user='mysql'/user=\`whoami\`/g" yourfile
Я намеренно опустил опцию -i
по той простой причине, что она не является частью проблемы.
Чтобы выяснить связь между одинарными кавычками и экранированием, сравните следующие две команды
echo 'I didn\'t know'
echo 'I didn'\''t know'
Первая будет дождитесь дальнейшего ввода, так как есть открытое '
, тогда как последнее будет работать нормально, так как вы объединяете одну строку в кавычках ('I didn'
), экранированную одинарную кавычку (\'
) и другую строку в одинарных кавычках ('t know'
).