Skip to content
/ psh Public

An experimental interconnected shell

Notifications You must be signed in to change notification settings

pmsanford/psh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

psh

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 alias command.
  • 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 diffenv and copyenv commands.
  • Cross-shell status information, provided by the pshl command.
  • Remotely setting environment variables for the parent shell of other scripts and programs using the setenv utility (which allows me to avoid creating a scripting language - you can just write your pshrc in bash and call setenv to 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.

image

About

An experimental interconnected shell

Resources

Stars

Watchers

Forks

Languages