Компилировать с флагом -lreadline
Инфо:
https://www.youtube.com/watch?v=A7ccmRSn7JY
https://www.youtube.com/watch?v=Um3pzuee-4Y
- Инициализировать переменные
- Обработка сигналов
- Добавить историю
- Обработка недопустимых символов
- Обработка кавычек (экранирование)
- Проверка пустых команд
- Подстановка переменных окружения. Обработка. (Удаление кавычек)
- Поиск бинарников $PATH функция int stat(args)
- Разложение на команды. Подготовка команд для запуска (bin, pipe, redirect) (Если команда кончается на ; - bin, если на | - pipe, > или >> redirect)
- Ребенок
- Родитель