Created by [CecilWesterhof]. '''My .tclshrc''' The part about setting the colours uses [Get Colour Escape String] and probably only works when using XWindows. ====== # In principal not necessary anymore, but: The cautious seldom err. - Confucius if {${tcl_interactive}} { package require tclreadline # To be able to enter expressions namespace path {::tcl::mathop ::tcl::mathfunc} # The output from this proc is used as primary prompt. proc ::tclreadline::prompt1 {} { set colour1 [getColour redLight] set colour2 [getColour white] set colour3 [getColour nothing] set user $::tcl_platform(user) if {${user} eq "root"} { set temp ${colour1} set colour1 ${colour2} set colour2 ${temp} } set currentDir [regsub "^/home/${user}" [pwd] ~] set dateTime [clock format [clock seconds] -format "%a, %e %b %T"] set host [lindex [split [info hostname] "."] 0] format "%s%s %s\[%s %s@%s:%s\]\n$ %s" \ ${colour1} \ tclsh${::tcl_version} \ ${colour2} \ ${dateTime} \ ${user} \ ${host} \ ${currentDir} \ ${colour3} } # I do not want unrecognised commands to be executed as shell commands. # This minimises the difference between a script and an interactive shell. # But this dimisses the usage as command line shell. # If you want to use it as a command line shell comment this out. set auto_noexec True # Start the readline loop ::tclreadline::Loop } ====== I use a terminal with a black background and a green font. This results in a prompt like: ====== tclsh8.6 [Wed, 6 Jun 06:58:28 cecil@munus:~] ====== Where the first part of the prompt is redlight and the second part is white. Except when the user is root: then the first part is white and the second part is redlight. I can do: ====== ** 3 27 ====== Which returns: ====== 7625597484987 ====== ---- As always: comments, tips and questions are appreciated. <>Example | Utilities