Search Top Index
HELP IMCSH Tom Khabaza April 1984 updated A.Sloman Aug 1986 IMCSH and <ENTER> imcsh If your computer provides the 'c-shell' (usually invoked by 'csh' or '/bin/csh' - normally available only on Berkeley Unix systems) then IMCSH allows you to execute c-shell commands using the 'immediate mode' mechanism in VED. This permits commands to a process to be given in a VED file, with all output being spliced back into the same file. IMCSH is a POP-11 macro and a VED <ENTER> command. Using imcsh in any of these ways will put you in VED in a file called "cshfile" whose associated compiler is csh_compile, and switch on immediate mode for that file. If you invoke it from VED, an optional argument can be given <ENTER> imcsh <filename> to specify the name of the file to be used. Because IMCSH sets up the file to use 'immediate mode', whenever you press <RETURN> with the cursor in its window, the current line is sent to the c-shell as a command. Any standard output from the c-shell process will appear in the VED buffer. This is often useful for executing commands whose output is long, but not worth saving in a dedicated file, e.g. 'ls -l' might cause something like the following to be spliced into the file: % ls -l drwxrwxrwx 2 fred 1024 Apr 27 09:20 bak -rw-rw-r-- 1 fred 32 Apr 28 00:01 foo -rw-rw-rw- 1 fred 213 Apr 28 01:52 index -rw-rw-r-- 1 fred 459 Apr 27 00:50 utils.p -rw-rw-r-- 1 fred 18823 Apr 28 04:09 vedcomms.p % The ampersand '&' can be put at the end of the command line as usual to spawn a background process. In that case you can continue editing another file and come back to the imcsh file later, then press <RETURN> (ON A BLANK LINE) to see the output. The c-shell prompt will be inserted at the beginning of the current line whenever the c-shell process is waiting for input. This prompt is not sent with the rest of the line when you press <RETURN>. WARNING: if your .cshrc file defines the prompt to change after every command (e.g. if your prompt string includes "\!" to indicate the command number) then the program cannot cope, as it uses the prompt sent back from the csh process to tell when it is ready for input. So the program uses a fixed, though user-assignable, font string as described in HELP * CSH_COMPILE Each line sent is copied to the end of the file, if it was not there already, and any output will follow it there. This enables the file to retain a 'log' of interactions with csh, and also implies that any previous command can easily be repeated, possibly after editing. This is often more convenient than the CSH 'history' mechanism. 'History' commands (e.g. '!5') may be given as usual, but will have to be preceded by a space as '!' at the beginning of the line will cause the rest of the line to be given to a new sub-shell. See HELP * IMSH for a similar facility for running bourne shell (/bin/sh) processes in a VED window. WARNING: IMCSH (like IMSH) cannot be used with an interactive program that expects input from the terminal. For instance, it cannot be used with mail. If an attempt is used to invoke such a program, imcsh will hang up, and will have to be interrupted by typing the QUIT interrupt character ONCE. This will invoke 'setpop' after which you will be able to return to VED. (If QUIT is typed twice, quickly, the whole POPLOG session will be aborted.) See also HELP * VED_CSHFILE, HELP * CSH_COMPILE, HELP * KILLCSH. Bugs: Multi-line commands are only allowed if they produce the continuation prompt for the extra lines, so although foreach i (foo baz) ls $i end is ok, ls \ foo is NOT. IMCSH (and VED_CSHFILE) are not suitable for use with interactive programs. --- C.unix/help/imcsh --- Copyright University of Sussex 1990. All rights reserved. ----------