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