Next: , Previous: , Up: Shell   [Contents][Index]

26.7.1 Single Shell Commands

M-! (shell-command) reads a line of text using the minibuffer and creates an inferior shell to execute the line as a command. Standard input from the command comes from the null device. If the shell command produces any output, the output goes to an SXEmacs buffer named ‘*Shell Command Output*’, which is displayed in another window but not selected. A numeric argument, as in M-1 M-!, directs this command to insert any output into the current buffer. In that case, point is left before the output and the mark is set after the output.

M-| (shell-command-on-region) is like M-! but passes the contents of the region as input to the shell command, instead of no input. If a numeric argument is used to direct output to the current buffer, then the old region is deleted first and the output replaces it as the contents of the region.

Both M-! and M-| use shell-file-name to specify the shell to use. This variable is initialized based on your SHELL environment variable when you start SXEmacs. If the file name does not specify a directory, the directories in the list exec-path are searched; this list is initialized based on the PATH environment variable when you start SXEmacs. You can override either or both of these default initializations in your init file. See Init File.

When you use M-! and M-|, SXEmacs has to wait until the shell command completes. You can quit with C-g; that terminates the shell command.

Next: , Previous: , Up: Shell   [Contents][Index]