Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to keep commands quiet in TCL?

Tags:

tcl

How to execute set command without printing output on the screen? I want to read a file without displaying the contents on the screen.

set a [open "giri.txt" r]
set b [read $ifile]
like image 280
GIRI MURALI Avatar asked Jul 26 '13 15:07

GIRI MURALI


People also ask

What is command substitution in Tcl?

If a word contains an open bracket (``['') then Tcl performs command substitution. To do this it invokes the Tcl interpreter recursively to process the characters following the open bracket as a Tcl script. The script may contain any number of commands and must be terminated by a close bracket (``]'').

How do you decrement in Tcl?

In Tcl, we use the incr command. By default, the value is incremented by 1. The above code shows how to decrement a variable by one, which is accomplished by the -- decrement operator in C-based languages.

Which access mode of Tcl file will create file automatically?

Opening Files This is the default mode used when no accessMode is specified. Opens a text file for writing, if it does not exist, then a new file is created else existing file is truncated.


1 Answers

What you're observing is just the standard behaviour of an interactive Tcl shell: each Tcl command returns a result value, and a return code. If the Tcl shell is interactive (that is, its input and output streams are connected to a terminal), after executing each command, the string representation of the result value the command returned is printed, and then the prompt is shown again. If the shell is not interactive, no results are printed and no prompt is shown.

(On a side note, such behaviour is ubiquitous with interpreters — various Unix shells, Python and Ruby interpreters do the same thing.)

If you want to inhibit such printouts in an interactive session (comes in handy from time to time), a simple hack to achieve that is to chain the command you want to "silence" with a "silent" command (producing a value whose string representation is an empty string), for instance:

set a [open "giri.txt" r]; list

Here, the list returned by the list command having no arguments is an empty list whose string representation is an empty string. In an interactive shell, this chain of commands will output literally nothing.

It bears repeating that such a hack might only ever be needed in an interactive session — do not use it in scripts.

like image 160
kostix Avatar answered Oct 09 '22 04:10

kostix