Skip to content

A standard command language interpreter shell written in Pascal. Built for learning. Uses BASH and the POSIX sh utility as a reference.

License

Notifications You must be signed in to change notification settings

samWson/two-shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Two Shell

A standard command language interpreter shell.

The purpose of Two Shell is learning by building. It does not implement any novel features or compelling use case beyond existing shells. Initial code is based of the tutuorial by Josh Mcguigan [jm].

Two Shell should not be considered fit for a production environment.

Installation

The makefile has recipes for building, installing, and uninstalling Two Shell. It will install to ~/usr/local/bin/. The install recipe will overwrite an existing Two Shell installation.

Since Two Shell is not for production or being distributed the install script does not require super user or administrator permissions. Files are installed to the users home directory.

To install run make install. To uninstall run make uninstall.

Usage

Two Shell is intended to work like any other POSIX standard shell such as GNU Bash. Any typical command line program can be run by entering the path of the binary or name as is normal.

Manual

The twosh.adoc file is the manual for the twosh binary. It is human readable Asciidoc format. A man page, twosh.1 has also been generated from the asciidoc. The man page can be viewed with the make manual target, or with man --local-file twosh.1.

Development

Two Shell has been developed on Manjaro Ornara 21.0 [mj].

Two Shell is built with the Free Pascal Compiler fpc 3.2.0 [fp].

GNU Make 4.3 is used for build automation [gm].

Asciidoctor 2.0.12 is used for creating the man pages [ad].

GNU GDB 10.1 is used for debugging [gdb].

Specification

Two Shell is intended to implement the POSIX standard for the sh utility [sh] and the Shell Command Language [scl]. GNU Bash [gb] is used as an inspiration and reference for development.

This Repository is in the Public Domain

The contents of this repository are in the public domain. Read the UNLICENSE file for details.

About

A standard command language interpreter shell written in Pascal. Built for learning. Uses BASH and the POSIX sh utility as a reference.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published