This is an experimental shell, partly inspired by this blog post about a much more ambitious shell. Being experimental, this is not suitable for day to day use.
Features:
- Aliases, accessed and created by the
aliascommand. - History and hints, provided by rustyline, accessed by pressing up at the command line (for history) and pressing right (for accepting hints)
- Cross-shell environment variable access, provided by the
diffenvandcopyenvcommands. - Cross-shell status information, provided by the
pshlcommand. - Remotely setting environment variables for the parent shell of other scripts and programs using the
setenvutility (which allows me to avoid creating a scripting language - you can just write your pshrc in bash and callsetenvto set variables in the parent environment)
Here's an example of these being used together: You've got a long-running process you don't want to kill, but it would be a pain to recreate parts of that environment to run another process. Or maybe you've had a process running for a long time and can't remember exactly how you configured its environment.
