У меня есть один сценарий оболочки файла (BusyBox, no bash, ksh, я считаю), что я хочу написать путь к себе при запуске. Мне нужно #home для замены home =/home. У меня есть это:замена заменителя заменяет замену
var="/home"
#home
sed -i 's/#home/home=$var/g' /this/file.sh
При запуске он будет заменить #home и строку в СЕПГ линии и $ вар не расширена:
var="/home"
home=$var
sed -i 's/home=$var/home=$var/g' /this/file.sh
Это мой желаемый результат:
var="/home"
home=/home
sed -i 's/#home/home=$var/g' /this/file.sh
Я тяну свои волосы, чтобы это работало. Любые намеки?
Ответ сам это работает, как ожидалось:
var="/home"
#home
sed -i "s|^#home|home=${var}/|g" m.sh
try 'sed -i" s/# home/home = $ var/g "/ this/file.sh' – Sundeep
см. [Sed, заменяющий переменными оболочки] (http://stackoverflow.com/documentation/sed/ 1096/substitution/3519/substitution-using-shell-variables # t = 201608300833232824835) для дальнейшего чтения – Sundeep
sed -i 's/^ # home $/home = $ var/g' – pdg