Manual Pages for UNIX Darwin command on man tclsh
MyWebUniversity

Manual Pages for UNIX Darwin command on man tclsh

tclsh(1) Tcl Applications tclsh(1)

NAME

tclsh - Simple shell containing Tcl interpreter

SYNOPSIS

ttccllsshh ?fileName arg arg ...?

DESCRIPTION

TTccllsshh is a shell-like application that reads Tcl commands from its

standard input or from a file and evaluates them. If invoked with no

arguments then it runs interactively, reading Tcl commands from stan-

dard input and printing command results and error messages to standard output. It runs until the eexxiitt command is invoked or until it reaches

end-of-file on its standard input. If there exists a file ..ttccllsshhrrcc (or

ttccllsshhrrcc..ttccll on the Windows platforms) in the home directory of the user, ttccllsshh evaluates the file as a Tcl script just before reading the first command from standard input. SCRIPT FILES If ttccllsshh is invoked with arguments then the first argument is the name of a script file and any additional arguments are made available to the script as variables (see below). Instead of reading commands from standard input ttccllsshh will read Tcl commands from the named file; ttccllsshh will exit when it reaches the end of the file. The end of the file may |

be marked either by the physical end of the medium, or by the charac- |

ter, '\032' ('\u001a', control-Z). If this character is present in the |

file, the ttccllsshh application will read text up to but not including the | character. An application that requires this character in the file may | safely encode it as ``\032'', ``\x1a'', or ``\u001a''; or may generate | it by use of commands such as ffoorrmmaatt or bbiinnaarryy. There is no automatic evaluation of ..ttccllsshhrrcc when the name of a script file is presented on the ttccllsshh command line, but the script file can always ssoouurrccee it if desired. If you create a Tcl script in a file whose first line is

##!!//uussrr//bbiinn//ttccllsshh

then you can invoke the script file directly from your shell if you mark the file as executable. This assumes that ttccllsshh has been

installed in the default location in /usr/bin; if it's installed some-

where else then you'll have to modify the above line to match. Many

UNIX systems do not allow the ##!! line to exceed about 30 characters in

length, so be sure that the ttccllsshh executable can be accessed with a short file name.

An even better approach is to start your script files with the follow-

ing three lines:

##!!//bbiinn//sshh

## tthhee nneexxtt lliinnee rreessttaarrttss uussiinngg ttccllsshh \\

eexxeecc ttccllsshh ""$$00"" ""$$@@""

This approach has three advantages over the approach in the previous paragraph. First, the location of the ttccllsshh binary doesn't have to be

hard-wired into the script: it can be anywhere in your shell search

path. Second, it gets around the 30-character file name limit in the

previous approach. Third, this approach will work even if ttccllsshh is itself a shell script (this is done on some systems in order to handle multiple architectures or operating systems: the ttccllsshh script selects one of several binaries to run). The three lines cause both sshh and ttccllsshh to process the script, but the eexxeecc is only executed by sshh. sshh processes the script first; it treats the second line as a comment and executes the third line. The eexxeecc statement cause the shell to stop processing and instead to start up ttccllsshh to reprocess the entire script. When ttccllsshh starts up, it treats all three lines as comments, since the backslash at the end of the second line causes the third line to be treated as part of the comment on the second line.

You should note that it is also common practise to install tclsh with |

its version number as part of the name. This has the advantage of | allowing multiple versions of Tcl to exist on the same system at once, | but also the disadvantage of making it harder to write scripts that | start up uniformly across different versions of Tcl. VVAARRIIAABBLLEESS TTccllsshh sets the following Tcl variables: aarrggcc Contains a count of the number of arg arguments (0 if none), not including the name of the script file.

aarrggvv Contains a Tcl list whose elements are the arg argu-

ments, in order, or an empty string if there are no arg arguments.

aarrggvv00 Contains fileName if it was specified. Otherwise, con-

tains the name by which ttccllsshh was invoked. ttcclliinntteerraaccttiivvee

Contains 1 if ttccllsshh is running interactively (no file-

Name was specified and standard input is a terminal-like

device), 0 otherwise. PPRROOMMPPTTSS

When ttccllsshh is invoked interactively it normally prompts for each com-

mand with ``%% ''. You can change the prompt by setting the variables

ttccllpprroommpptt11 and ttccllpprroommpptt22. If variable ttccllpprroommpptt11 exists then it must consist of a Tcl script to output a prompt; instead of outputting a prompt ttccllsshh will evaluate the script in ttccllpprroommpptt11. The variable ttccllpprroommpptt22 is used in a similar way when a newline is typed but the current command isn't yet complete; if ttccllpprroommpptt22 isn't set then no prompt is output for incomplete commands. SSTTAANNDDAARRDD CCHHAANNNNEELLSS See TTccllSSttaannddaarrddCChhaannnneellss for more explanations.

SEE ALSO

fconfigure(n), tclvars(n) KKEEYYWWOORRDDSS argument, interpreter, prompt, script file, shell

Tcl tclsh(1)




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™