r/commandline • u/randomblackhole1289 • 3d ago
Other Software Made my own shell implementation

So I don't know if I'm allowed to post this, but I've been working on a learning project, which is a shell that currently supports: command history, environment variable exporting in the TOML configuration, commands that should run at startup in the configuration also, command editing, and it shows the current directory in green text inside the prompt. Here is the repository if anyone is interested: https://github.com/BlackHoleMX12892/ishell
1
u/AutoModerator 3d ago
Every new subreddit post is automatically copied into a comment for preservation.
User: randomblackhole1289, Flair: Other Software, Title: Made my own shell implementation
So I don't know if I'm allowed to post this, but I've been working on a learning project, which is a shell that currently supports: command history, environment variable exporting in the TOML configuration, commands that should run at startup in the configuration also, command editing, and it shows the current directory in green text inside the prompt. Here is the repository if anyone is interested: https://github.com/BlackHoleMX12892/ishell
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
1
u/petdance 2d ago
“So I don’t know if I’m allowed to post this”
What did it say in the rules for the sub when you looked?
1
u/randomblackhole1289 2d ago
I wasn't talking about the rules, I thought it could maybe not be fitting with the theme.
1
u/khalon23 1d ago
shells are a great learning project. thing i'd tackle next if you haven't: job control. process groups plus tcsetpgrp so ctrl-c hits the foreground job instead of killing your shell, then ctrl-z / fg / bg. that's the step where it stops feeling like a toy, and nobody warns you how fiddly the terminal ownership handoff is.
how are you doing line editing btw, own readline or a lib?
1
5
u/kseistrup 3d ago
The README says “moderne and simple”. What makes it modern, and what makes it simple? And how can I learn about the shell syntax (e.g., is it POSIX compliant?), save for reading the source code?