In Tcl, we classify some of the variables as special variables and
they have a predefined usage/functionality. The list of specials
variables is listed below.
| S.No. |
Special Variable & Description |
| 1 |
argc
Refers to a number of command-line arguments. |
| 2 |
argv
Refers to the list containing the command-line arguments.
|
| 3 |
argv0
Refers to the file name of the file being interpreted or the name by which we invoke the script. |
| 4 |
env
Used for representing the array of elements that are environmental variables. |
| 5 |
errorCode
Provides the error code for last Tcl error. |
| 6 |
errorInfo
Provides the stack trace for last Tcl error. |
| 7 |
tcl_interactive
Used to switch between interactive and non-interactive modes by setting this to 1 and 0 respectively. |
| 8 |
tcl_library
Used for setting the location of standard Tcl libraries. |
| 9 |
tcl_pkgPath
Provides the list of directories where packages are generally installed. |
| 10 |
tcl_patchLevel
Refers to the current patch level of the Tcl interpreter. |
| 11 |
tcl_platform
Used for representing the array of elements with objects including byteOrder, machine, osVersion, platform, and os. |
| 12 |
tcl_precision
Refers 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_prompt1
Refers to the primary prompt. |
| 14 |
tcl_prompt2
Refers to the secondary prompt with invalid commands. |
| 15 |
tcl_rcFileName
Provides the user specific startup file. |
| 16 |
tcl_traceCompile
Used for controlling the tracing of bytecode compilation. Use 0 for no output, 1 for summary, and 2 for detailed. |
| 17 |
tcl_traceExec
Used for controlling the tracing of bytecode execution. Use 0 for no output, 1 for summary, and 2 for detailed. |
| 18 |
tcl_version
Returns 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.3
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
No comments:
Post a Comment