Operating System Assignment : Build a Basic Shell in C
Budget: ₹600 – ₹1,500 INR
Hire: C Developer to Build a Minimal Linux Shell (C17)
Goal: Implement a bash-like shell in C (C17) that compiles on Linux (GCC ≥ 11) and passes an autograder. Single-file submission: shell.c No third-party libs (especially no readline).
Must-have features
Prompt exactly: MTL458 > (shown even for piped/non-interactive input)
Command exec via fork/execvp
Single pipe: cmd1 | cmd2
Single redirection per command: <, >, >> (no mixing with pipes)
Separators: ; (always), && (run next only on success) — bash-like behavior
Wildcard expansion (*) + ~ (can use wordexp)
Built-ins:
cd (supports cd, cd -, cd ., cd .., cd ~ and cd ~/path)
history and history n (oldest→newest, keep duplicates, cap 2048; if n > size, print all)
exit
Tab completion (TTY only): if exactly one filename matches, auto-complete
On any error: print Invalid Command
Constraints
Linux, GCC command: gcc -std=c17 -Wall -Wextra -O2 entrynumber_a1.c → default a.out
No readline or extra packages; standard C/POSIX only
Deliverables
shell.c (well-commented)
Short README (build/run instructions, features)
Nice to have
Familiarity with POSIX (pipe, dup2, termios) and precise I/O formatting for autograders
Apply with
Brief plan + timeline
Relevant C/POSIX samples (shells/parsers/tools)
Goal: Implement a bash-like shell in C (C17) that compiles on Linux (GCC ≥ 11) and passes an autograder. Single-file submission: shell.c No third-party libs (especially no readline).
Must-have features
Prompt exactly: MTL458 > (shown even for piped/non-interactive input)
Command exec via fork/execvp
Single pipe: cmd1 | cmd2
Single redirection per command: <, >, >> (no mixing with pipes)
Separators: ; (always), && (run next only on success) — bash-like behavior
Wildcard expansion (*) + ~ (can use wordexp)
Built-ins:
cd (supports cd, cd -, cd ., cd .., cd ~ and cd ~/path)
history and history n (oldest→newest, keep duplicates, cap 2048; if n > size, print all)
exit
Tab completion (TTY only): if exactly one filename matches, auto-complete
On any error: print Invalid Command
Constraints
Linux, GCC command: gcc -std=c17 -Wall -Wextra -O2 entrynumber_a1.c → default a.out
No readline or extra packages; standard C/POSIX only
Deliverables
shell.c (well-commented)
Short README (build/run instructions, features)
Nice to have
Familiarity with POSIX (pipe, dup2, termios) and precise I/O formatting for autograders
Apply with
Brief plan + timeline
Relevant C/POSIX samples (shells/parsers/tools)
Related categories:
C Programming
Linux
Research
Health & Medicine
Report Writing
Debugging
Software Development
Bash Scripting
Writing
Bash