osh(1)
NAME
- osh is command interpreter based on the omake(1) build
- system.
THE OSH SHELL
- OMake also includes a standalone command-line interpreter
- osh that can be used as an interactive shell. The shell uses the
- same syntax, and provides the same features on all platforms
- omake supports, including Win32.
- STARTUP
- On startup, osh reads the file ~/.oshrc if it exists. The
- syntax of this file is the same as an OMakefile. The following
- additional variables are significant.
- prompt The prompt variable specifies the command-line
- prompt. It can be a simple string.
prompt = osh> - Or you may choose to define it as a function of no argu
- ments.
prompt() =return $"<$(USER):$(HOST) $(homename $(CWD))>" - An example of the latter prompt is as follows.
<jyh:kenai.yapper.org ~>cd links/omake
<jyh:kenai.yapper.org ~/links/omake>- ignoreeof
- If the ignoreeof is true, then osh will not exit on
- a terminal end-of-file (usually ^D on Unix systems).
- ALIASES
- Command aliases are defined by adding functions to the
- Shell. object. The following alias adds the -AF option to the ls
- command.
Shell. +=ls(argv) ="ls" -AF $(argv) - Quoted commands do not undergo alias expansion. The quota
- tion "ls" prevents the alias from being recursive.
- INTERACTIVE SYNTAX
- The interactive syntax in osh is the same as the syntax of
- an OMakefile, with one exception in regard to indentation. The
- line before an indented block must have a colon at the end of the
- line. A block is terminated with a . on a line by itself, or ^D.
- In the following example, the first line if true has no body, be
- cause there is no colon.
# The following if has no body
osh>if true
# The following if has a body
osh>if true:
if> if true:
if> println(Hello world)
if> .
Hello world - Note that osh makes some effort to modify the prompt while
- in an indented body, and it auto-indents the text.
- The colon signifier is also allowed in files, although it
- is not required.
- SEE ALSO
- See Section omake-shell for more information on the shell
- language, and Section omake-system for more information on job
- control.
REFERENCES
- SEE ALSO
- omake(1), omake-quickstart(1), omake-options(1), omake
- root(1), omake-language(1), omake-shell(1), omake-rules(1),
- omake-base(1), omake-system(1), omake-pervasives(1), osh(1),
- make(1)
- VERSION
- Version: 0.9.6.9 of April 11, 2006.
- LICENSE AND COPYRIGHT
- (C)2003-2006, Mojave Group, Caltech
- This program is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public Li
- cense as published by the Free Software Foundation; either ver
- sion 2 of the License, or (at your option) any later version.
- This program is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied war
- ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
- the GNU General Public License for more details.
- You should have received a copy of the GNU General Public
- License along with this program; if not, write to the Free Soft
- ware Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- AUTHOR
- Jason Hickey et. al..br Caltech 256-80
Pasadena, CA 91125, USA
Email: omake-devel@metaprl.org WWW: http://www.cs.caltech.edu/~jyh - Build Tools April 11, 2006