Skip to content
Simple Shell. A minimalistic command interpreter for UNIX-like systems. (broken rn)
C Roff Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
src
.gitignore
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
README.md
build.sh
ss.1

README.md

Simple shell

Coverity Codacy Badge

A simple shell.

Screencast

Demo

Future features

  • Basic usability
  • Variables
  • Set $SHELL
  • $?, $PWD, $OWD
  • Replace home path with ~ in prompt
  • Escape special chars (\)
  • Basic routines
  • Routine arguments ($#, $1, $2...)
  • Pipes
  • File redirection (>)
  • if/else
  • Loops
  • Beat s's level of functionality
  • Usable as a replacement for normal shells (s doesn't completely reach this in my opinion)

Possible future features

  • Globbing
  • Switch to linenoise or something similar
  • < redirection -- WILL BE REMOVED
  • Arrays
  • Lisp-style command nesting (echo (echo hi))
  • Character aliases (\n, \r, etc)
  • Customizable prompt

Usage

ss(1)                                SS(1)                               ss(1)



NAME
       ss - Simple Shell


DESCRIPTION
       ss,  or  Simple  Shell,  is a minimal command interpreter for UNIX-like
       systems. It is not sh-compatible, nor does it aim to be.


   LIST OF BUILTINS
       ss, cd, set, echo, pwd, exit, exec, routine,  unroutine,  listroutines,
       help



   BUILTIN USAGE
       cd     Change directory

              Usage: cd [directory]


       set    Set enviromental variable

              Usage: set [variable] [value]


       unset  Unset enviromental variable

              Usage: unset [variable]


       echo   Echo arguments back

              Usage: echo [text] <more text...>


       pwd    Path of working directory

              Usage: pwd


       exit   Exits shell

              Usage: exit <error code>


       routine
              Creates a new routine

              Usage:

              > routine [name]

                   routine> [code]

                   routine> end


       listroutines
              Lists added routines

              Usage: listroutines


       unroutine
              Deletes a routine

              Usage: unroutine [name]


       help   Display  this  help page.  If there's one command that you don't
              want to forget, it's this one

              Usage: help


SEE ALSO
       sh(1), s(1), execline(1), rc(1), es(1)


NOTES
       Is currently under development and is a WIP, not featureful enough  for
       normal usage



ss, version WIP0                   2018-11-8                             ss(1)

How to build

$ ./build.sh
$ ./build.sh install

How to uninstall

$ ./build.sh uninstall

Other info

Inspired by s, rc, es, and the Suckless people

You can’t perform that action at this time.