Я початківець у програмі bash scripting. Я хочу створити bash-скрипт для автоматичного встановлення та налаштування матеріалів на моєму linux box.
Припустимо, я хочу редагувати
/etc/yum.repos.d/epel.repo
за сценарієм bash
Що я хочу зробити, це наступне
- Відкрити файл /etc/yum.repos.d/epel.repo
- Знайдіть розділ [epel]
- Додайте пріоритет рядка = 10 після ввімкнення рядка = 1 у розділі epel
Для першої частини я додав
yum install nano
nano /etc/yum.repos.d/epel.repo
Моє запитання - як зробити 2-ю та 3-ю частини за допомогою скрипту bash, використовуючи nano (якщо можливо, у випадку, якщо це неможливо, покажіть мені sed)
Також у деяких моментах мені доведеться змінювати змінні у файлах Наприклад, наприклад
- enable = 0 включити = 1
- Тестування = "1" до Тестування = "0"
- Додайте текст у рядку. function = to function = "text1", "text2"
- Додайте текст у файл і збережіть його (з nano)
Я знаю його вимогливість, але мені потрібно створити це для друга, який є noob в управлінні сервером. На жаль, я не встигаю вивчити сценарій bash з самого початку, як іспити, як близько. Я буду використовувати ваші приклади для написання сценарію.
Хлопці дякую за всі відповіді, які я успішно зробив більшу частину сценарію bash
Однак у мене є інша проблема Давайте припустимо , що я хочу змінити nginx.conf з використанням СЕД Ми будемо мати справу з worker_processes
Тепер я хочу використовувати СЕД зробити наступне 1.Find на перше входження в worker_processes
в цій конф і заміна текстуworker_processes 4;
Тут особлива примітка. Це лише приклад. Може трапитися так, що конф містить radnik_process 1; . Це важка частина. Я хочу команду sed, яка знайде випадок ПЕРШОГО відповідності WHOLE слова " робочий_процес" , видалить рядок тексту, де знайдено слово, і вставте worker_processes 4;
туди, а потім збережіть файл. Це найнадійніший метод, який я використовую при редагуванні файлів (без найвищого ризику зламати конф
Останньою пропозицією я скористався sed -i 's / enable = 0 / enable = 1 / g' /etc/yum.repos.d/remi.repo, щоб змінити увімкнено = 0 на увімкнено = 1 у розділі [remi] у ремі .repo. Хоча у мене є відчуття, що він може змінити всі включені = 0 у цьому файлі, що розірве сервер. Може хто-небудь запропонує кращий код.
Інший матеріал, в якому я не впевнений: PI хочу редагувати файл, у якому це тест як Text Testing = "0" (Так, у нього є лапки, і мені потрібно зберегти його) Це повинно бути змінено з Testing = "0" на Testing = " 1 "(з цитатами)
Також мені потрібно додати трохи тексту з цитатами в кінці файлу з sed На кшталт "Дякую Quanta" (з цитатою) Для php ви ставите \ з лунаючими цитатами, не знаю, як це робиться для bash
Інша річ, що
мені потрібно змінити рядок у конф., Але я не пам'ятаю, який текст замінюється
Як його слухати = щось; , я хочу змінити його для прослуховування = /tmp/php5-fpm.sock;
Великі великі пальці вгору для збільшення квантів
Дякуємо за чудову підтримку хлопців