Tcl – Special Variables

Tcl - Special variables

In this guide, we will explain to classify some of the tcl variables as special variables and they have a predefined usage/functionality. The list of specials variables is listed below.

Sr.No.Special Variable & Description
1argcRefers to a number of command-line arguments.
2argvRefers to the list containing the command-line arguments.
3argv0Refers to the file name of the file being interpreted or the name by which we invoke the script.
4envUsed for representing the array of elements that are environmental variables.
5errorCodeProvides the error code for last Tcl error.
6errorInfoProvides the stack trace for last Tcl error.
7tcl_interactiveUsed to switch between interactive and non-interactive modes by setting this to 1 and 0 respectively.
8tcl_libraryUsed for setting the location of standard Tcl libraries.
9tcl_pkgPathProvides the list of directories where packages are generally installed.
10tcl_patchLevelRefers to the current patch level of the Tcl interpreter.
11tcl_platformUsed for representing the array of elements with objects including byteOrder, machine, osVersion, platform, and os.
12tcl_precisionRefers to the precision i.e. number of digits to retain when converting to floating-point numbers to strings. The default value is 12.
13tcl_prompt1Refers to the primary prompt.
14tcl_prompt2Refers to the secondary prompt with invalid commands.
15tcl_rcFileNameProvides the user specific startup file.
16tcl_traceCompileUsed for controlling the tracing of bytecode compilation. Use 0 for no output, 1 for summary, and 2 for detailed.
17tcl_traceExecUsed for controlling the tracing of bytecode execution. Use 0 for no output, 1 for summary, and 2 for detailed.
18tcl_versionReturns the current version of the Tcl interpreter.

The above special variables have their special meanings for the Tcl interpreter.

Examples for using Tcl special variables

Let’s see some examples for special variables.

Tcl version

#!/usr/bin/tclsh

puts $tcl_version

When you run the program, you will get a similar output as shown below −

8.6

Tcl Environment Path

#!/usr/bin/tclsh

puts $env(PATH)

When you run the program, you will get a similar output as shown below −

/home/cg/root/GNUstep/Tools:/usr/GNUstep/Local/Tools:/usr/GNUstep/
System/Tools:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/webmaster/.local/bin:/
home/webmaster/bin:/usr/local/scriba/bin:/usr/local/smlnj/
bin:/usr/local/bin/std:/usr/local/bin/extra:/usr/local/fantom/bin:/usr/
local/dart/bin:/usr/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/opt/mono/
bin:/opt/mono/lib/mono/4.5:/usr/local/bin:.:/usr/libexec/sdcc:/usr/local/
icon-v950/bin:/usr/local/mozart/bin:/opt/Pawn/bin:/opt/jdk1.7.0_75/bin:/
opt/jdk1.7.0_75/jre/bin:/opt/pash/Source/PashConsole/bin/Debug/

Tcl Package Path

#!/usr/bin/tclsh

puts $tcl_pkgPath

When you run the program, you will get a similar output as shown below −

/usr/lib64/tcl8.6 /usr/share/tcl8.6 /usr/lib64/tk8.6 /usr/share/tk8.6

Tcl Library

#!/usr/bin/tclsh

puts $tcl_library

When you run the program, you will get a similar output as shown below −

/usr/share/tcl8.6

Tcl Patch Level

#!/usr/bin/tclsh

puts $tcl_patchLevel

When you run the program, you will get a similar output as shown below −

8.6.6

Tcl Precision

#!/usr/bin/tclsh

puts $tcl_precision

When you run the program, you will get a similar output as shown below −

0

Tcl Startup File

#!/usr/bin/tclsh

puts $tcl_rcFileName

When you run the program, you will get a similar output as shown below −

~/.tclshrc

Next Topic : Click Here

Leave a Reply