{"id":19293974,"url":"https://github.com/igrishaev/vsu-bash-c","last_synced_at":"2026-06-09T20:31:33.883Z","repository":{"id":147470390,"uuid":"67506144","full_name":"igrishaev/vsu-bash-c","owner":"igrishaev","description":"VSU Bash and C practical task","archived":false,"fork":false,"pushed_at":"2016-09-07T08:49:11.000Z","size":6,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-24T00:26:01.330Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/igrishaev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-06T12:29:11.000Z","updated_at":"2016-09-07T13:03:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"15215133-85e7-40ae-96b3-3c1a7426314e","html_url":"https://github.com/igrishaev/vsu-bash-c","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/igrishaev/vsu-bash-c","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrishaev%2Fvsu-bash-c","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrishaev%2Fvsu-bash-c/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrishaev%2Fvsu-bash-c/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrishaev%2Fvsu-bash-c/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/igrishaev","download_url":"https://codeload.github.com/igrishaev/vsu-bash-c/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/igrishaev%2Fvsu-bash-c/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34125332,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T22:36:43.009Z","updated_at":"2026-06-09T20:31:33.863Z","avatar_url":"https://github.com/igrishaev.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Bash \u0026 C task\n\n```\nbash\n1. Два варианта: выбор из фиксированного набора (например, who и wc -l либо ls -l и head -n 2) или ввод пары команд вручную\n2. Подтвердить выбор одного из вариантов\n3. Вариант 1\n3.1 В случае фиксированного набора предоставить варианты из набора\n3.2 Выбрать по номеру строки (1 или 2)\n4. Вариант 2\n4.1 Считать пару команд с консоли\n\nКаждая команда записывается в отдельный макрос в файле Definition\n\nc\n1. Проект собирается из makefile\n2. В makefile включается файл Definition (оттуда беруться значения макросов)\n3. c-файл\n3.1 Создается дочерний процесс (с использованием fork())\n3.2 В дочернем процессе выполняется первая команда из Definition (с использованием execl())\n3.3 Через pipe выполняется перенаправление на родительский процесс\n3.4 В родительском процессе принимаются данные от дочернего процесса через pipe\n3.5 Данные подаются на вход второй команды\n```\n\nSteps:\n\n- launch `./prompt.sh` to prepare command macroses;\n- run `make` to build and run the program.\n\nThe following bash sessions show the process as well.\n\nDefault commands:\n\n```\nIvans-MBP% ./prompt.sh\nSelect an option:\n1) Choose default commands\n2) Input commands manualy\n*) Quit\n1\nSelect a command pair:\n1) who | wc -l\n2) ls -l | head -n 4\n*) Quit\n1\nCommands saved.\nIvans-MBP% make\ncc program.c -o program -D CMD1='\"who\"' -D CMD2='\"wc -l\"'\n./program\n       2\n```\n\nOr user preferred ones:\n\n```\nIvans-MBP% ./prompt.sh\nSelect an option:\n1) Choose default commands\n2) Input commands manualy\n*) Quit\n2\nEnter command #1:\nls -l\nEnter command #2:\ngrep Def\nCommands saved.\nIvans-MBP% make\ncc program.c -o program -D CMD1='\"ls -l\"' -D CMD2='\"grep Def\"'\n./program\n-rw-r--r--  1 ivan  staff    29 Sep  7 11:36 Definitions\n-rw-r--r--  1 ivan  staff    30 Sep  7 10:47 Definitions.example\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figrishaev%2Fvsu-bash-c","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figrishaev%2Fvsu-bash-c","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figrishaev%2Fvsu-bash-c/lists"}