uBix-Retro / dump / oa-2.0.9 / apps / lsh /
..
Makefile Initial Sync 3 years ago
README Initial Sync 3 years ago
lsh.a65 Initial Sync 3 years ago
README
lsh v0.1 26dec1997 (c) A.Fachat
-------------------------------

This is a very first implementation of a simple lib6502 compatible shell.
It reads the command line, does I/O redirection and starts the called
program.

The shell can set environment variables, and substitute them in the command
line.

The internal commands cannot be piped, only redirected. This may
change in the future (perhaps by threading, at least for pwd and echo)

lsh command line options:
-------------------------

Usage:

 lsh [options] [file]
 options:
  -d 	debug mode - be more verbose
  --    the following arguments are no options
 file: 
  A filename that contains lsh commands. If given, lsh input is read
  from here instead of stdin and stdout output is suppressed.

Syntax of the lsh commands:
---------------------------

command [redirection] [ {'|;} command [redirection]] [ {'|;} command... ]]

command is the usual command (with absolute path if not in the current dir)
with parameter.

redirection is a list of "> file", "< file", or "! file".
This redirects stdout, stdin or stderr to the given filename.
A combination "!>" or ">!" redirects stdout and stderr to the same file.
A ">>" instead of ">" appends to the file instead of overwriting it
(works for stdout or stdout + stderr only).

A "'" (the lsh pipe symbol) redirects the stdout of the previous task
to the stdin of the following task.

A ";" at the end of a command waits for the execution before 
further interpreting the command line.

All redirection chars have to be at the beginning of a 'token'.

builtin commands:
-----------------

exit		- ends the lsh
cd path		- changes current directory
pwd		- print current directory
set var=value	- sets environment variable
echo text	- echos text
uname		- print lib6502/OS ident string