- Shell curses
Shell Curses is a terminal control library for
Unix-like systems, enabling the construction of text user interface (TUI) applications. The purpose of the function library is to provide the shell programmer with the ability to move the cursor to specific locations on the screen and display text or read input from a user. It consists of a library of functions that manage the display of a shell program or application on character-cell terminals (e.g.,VT100 ).History
Shell Curses function library was written by
Dana French and originally released withFrench Menus in circa 1993, where it was used for building text based menus and data entry screens for database user interfaces. It was originally written in Bourne shell syntax utilizing thetput binary utility available on all Unix based systems. Later versions of Shell Curses were ported to Korn Shell, Korn Shell 93, and Bash. Shell Curses is also sometimes referred to as "shcurses".Overview
For a simple shell utility, program, or application that does not require bit-mapped graphics or multiple fonts, an interface implementation using Shell Curses will usually be much simpler than one using an X toolkit or the "C" language curses library. Using Shell Curses, shell programmers are able to write text-based applications without writing directly for any specific terminal type. The Shell Curses function library on the executing system sends the correct control characters based on the terminal type. Also, since it is shell code, the programs generated using Shell Curses do not need to be compiled.
Portability
Although the Shell Curses function library was initially developed as Bourne Shell code under AT&T System V Release 4, since it is shell code, it ports unmodified to any Unix system, and between Bourne compatible shells. The syntax and arguments of using each function is also very similar to the corresponding
curses function.Numerous menuing and data entry systems exist based on shell curses and are used for a variety of purposes such as system administration, application administration, installation, database interaction, and others.
References
* French, Dana [http://www.ibm.com/developerworks/aix/library/au-shellcurses/index.html "Shell Curses Tutorial at IBM Developerworks"] , "IBM Developerworks", March 28, 2008.
* shunix [http://sourceforge.net/projects/shunix/ "Shell Based Unix Utilities"] , SourceForge, 2008
* Pierre-Philipp Braun [http://pbraun.nethence.com/doc/devel/ksh.html "Korn Shell programming"] , 2008
* Andrew Pantyukhin [http://wiki.freebsd.org/AndrewPantyukhin/Ports/iport "FreeBSD iport collection"] , June 17, 2008
* Brian Hiles [http://unix.derkeiler.com/Newsgroups/comp.unix.shell/2007-01/msg00470.html "sprites/game in bash"] , January 16, 2007ee also
*
ncurses - New version of curses
*termcap – a database
*terminfo – a terminal database
*S-Lang – an interpreted language with some related featuresExternal links
* [http://www.mtxia.com/css/Downloads/Scripts/Korn/Functions/shcurses/ Shell Curses Function Library]
* [http://www.mtxia.com/css/Downloads/Scripts/Korn/Functions/frenchMenus/ French Menus] , menuing system based on Shell Curses
Wikimedia Foundation. 2010.