the '''http://en.wikipedia.org/wiki/Bourne_shell%|%Bourne Shell''' is one of the two predominant [Unix shells]. ** Reference ** [http://en.wikipedia.org/wiki/Bourne_shell%|%Wikipedia]: [http://www.in-ulm.de/~mascheck/bourne/%|%The Traditional Bourne Shell Family], Sven Mascheck, 2001-10-07 - 2014-05-03: [http://pubs.opengroup.org/onlinepubs/9699919799/idx/shell.html%|%Shell Command Language], [http://pubs.opengroup.org/onlinepubs/9699919799/%|%The Open Group Base Specifications Issue 7], 2013: [http://pubs.opengroup.org/onlinepubs/009695399/utilities/sh.html%|%sh - shell, the standard command language interpreter], [http://pubs.opengroup.org/onlinepubs/009695399/%|%The Open Group Base Specifications Issue 6], 2004: ** Implementations ** [http://heirloom.sourceforge.net/sh.html%|%The Heirloom Bourne Shell]: ** Variants ** Modern variants of the Bourne Shell include ash: [bash]: [ksh], by [David Korn]: a popular Bourne-compatible shell which is also available on [Microsoft Windows%|%Windows]. zsh: ** Load or Generate a Tcl [List] ** Here are some shell functions to generate a Tcl list from a sequence of values, and to load a Tcl list into an array. They're handy, among other things, for storing and loading structured data. ======none #! /bin/env bash : ${TCLSH:=tclsh} #generate a Tcl list from a sequence of arguments #example: mylist=$(tcllist one two three '{' ) tcllist () { local libpath local res res=$("$TCLSH" - "$@" <<-'EOF' puts [lrange $argv 1 end] EOF ) printf %s "$res" } #load a Tcl list into an array #example: tcllist_arr myarray '{one two {three four} five}' tcllist_arr () { assert declare "$1" eval $1'=()' while read -d $'\0'; do eval $1'[${#'$1'[*]}]="$REPLY"' done < <( "$TCLSH" - "${@:2:$#}" <<-'EOF' proc main {arg0 argv} { set list [lindex $argv 1] foreach item $list { puts -nonewline $item\0 } } main $argv0 $argv EOF ) } ====== ** See Also ** [Playing Bourne shell]: <> Unix Shells