bash, добавляя строку после определенной строки

Для моего фактического создания сценария первоначальной настройки сервера мне нужно добавить строку, сохраненную в переменной, после определенной строки в определенном файле.

Я хочу добавить строку:

zend_extension = $phpextensiondir/ioncube_loader_lin_$phpextensionnumber.so

после следующей строки:

;realpath_cache_ttl = 120

в следующих файлах:

  • /etc/php/$phpversionnumber/cli/php.ini
  • /etc/php/$phpversionnumber/cli/fpm.ini

Я искал вокруг, но не могу найти ничего, что я понимаю. На самом деле я новичок в сценариях bash. Кто-нибудь может объяснить? Кажется, что sed не подходит для этого?


person yFStein    schedule 09.01.2020    source источник
comment
Взгляните на: Вставить строку после первого совпадения с использованием sed   -  person Paul Lemmons    schedule 09.01.2020
comment
Хм, сложно. Вы хотите поместить литеральные строки '$phpextensiondir' и '$phpextensionnumber' в файл, или вы хотите, чтобы они были расширены и поместили результат в файл? Например, если файл содержит знаки доллара и имена переменных phpextensiondir и phpextensionnumber или эти вещи должны быть расширены, а затем вставлены, например, если $phpextensiondir было c:\php_new\ext, а $phpextensionnumber было равно 5, то в конечном итоге файл будет содержать zend_extension = c:\php_new\ext/ioncube_loader_lin_5.so. Я предполагаю, что для phpversionnumber существует переменная env, например phpversionumber=7.4?   -  person Brenda J. Butler    schedule 10.01.2020
comment
Мне нужно, чтобы его развернули и поместили результат в файл. Это то, что у меня есть, буду очень признателен за помощь: pastebin.com/pHfKTVnu   -  person yFStein    schedule 10.01.2020