At a place where a command is expected, the char # serves as [comment]. That can be the beginning of a line or immediately after a semicolon (;). A line or bracketed [[expression]] beginning with # is treated as ''nothing''. It differs from the construct if 0 ... in that its following arguments cannot be processed. If you write this: if 0 [puts a] then the output is a, followed by the prompt: a % If you write this: # [puts a] then nothing happens: %