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