Skip to content

ivanz851/LavaShell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LavaShell

Аналог shell под названием lavash на языке C++.

1. База

Реализован простой парсер аргументов командной строки. Поддерживаются в том числе аргументы в кавычках и экранирование. Реализована поддержка опции -c, принимающая на вход аргументом строку (в том числе содержащую пробелы) являющуюся командой для исполнения. Простой запуск подпрограммы реализован с помощью системных вызовов fork, exec, wait* и других. Код возврата программы соответствует коду возврата запущенного приложения.

2. Pipe

Реализован оператор "|", соединяющий вывод предыдущей команды со входом следующей через pipe.

3. Files

Реализована поддержка ввода/вывода из файлов с помощью операторов < и >.

4. Операторы "и" && и "или" ||

Реализованы операторы "и" и "или", которые последовательно запускают команды и возвращают логическую истинность выражения в виде кода возврата. Операторы являются ленивыми и не выполняют последующую команду, если по предыдущей результат уже ясен.

5. Код возврата

Код возврата равен коду возврата запущенной команды.

6. Тесты

Реализованы тесты для тестирования описанного выше функционала.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published