Function: sh-execute-region

sh-execute-region is an interactive and byte-compiled function defined in sh-script.el.gz.

Signature

(sh-execute-region START END &optional FLAG)

Documentation

Pass optional header and region to a subshell for noninteractive execution.

The working directory is that of the buffer, and only environment variables are already set which is why you can mark a header within the script.

The executed subshell is sh-shell-file.

With a positive prefix ARG, instead of sending region, define header from beginning of buffer to point. With a negative prefix ARG, instead of sending region, clear header.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/sh-script.el.gz
(defun sh-execute-region (start end &optional flag)
  "Pass optional header and region to a subshell for noninteractive execution.
The working directory is that of the buffer, and only environment variables
are already set which is why you can mark a header within the script.

The executed subshell is `sh-shell-file'.

With a positive prefix ARG, instead of sending region, define header from
beginning of buffer to point.  With a negative prefix ARG, instead of sending
region, clear header."
  (interactive "r\nP")
  (if flag
      (setq sh-header-marker (if (> (prefix-numeric-value flag) 0)
				 (point-marker)))
    (let ((shell-file-name sh-shell-file))
      (if sh-header-marker
	  (save-excursion
	    (let (buffer-undo-list)
	      (goto-char sh-header-marker)
	      (append-to-buffer (current-buffer) start end)
	      (shell-command-on-region (point-min)
				       (setq end (+ sh-header-marker
						    (- end start)))
				       sh-shell-file)
	      (delete-region sh-header-marker end)))
        (shell-command-on-region start end (concat sh-shell-file " -"))))))