unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* how to send lines of a shell script directly to the shell
@ 2023-04-16  8:53 Uwe Brauer
  2023-04-16  9:05 ` tomas
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Uwe Brauer @ 2023-04-16  8:53 UTC (permalink / raw)
  To: help-gnu-emacs



Hi

I have to execute a series of commands like 

git checkout strings 
mygit-push-named-branch strings
etc

It is a list of these commands in a file. I can call 
M-x shell 

And then copy each line to the shell where it is executed.

Is there any faster way, a command like
execute this line via the shell.

I googled but cannot find anything.

Regards

Uwe Brauer 

-- 
Warning: Content may be disturbing to some audiences
I strongly condemn Putin's war of aggression against the Ukraine.
I support to deliver weapons to Ukraine's military. 
I support the ban of Russia from SWIFT.
I support the EU membership of the Ukraine. 
https://addons.thunderbird.net/en-US/thunderbird/addon/gmail-conversation-view/




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how to send lines of a shell script directly to the shell
  2023-04-16  8:53 how to send lines of a shell script directly to the shell Uwe Brauer
@ 2023-04-16  9:05 ` tomas
  2023-04-16 10:03   ` Uwe Brauer
  2023-04-16 10:09   ` Uwe Brauer
  2023-04-16 15:31 ` Eduardo Ochs
  2023-04-22 19:49 ` parozusa
  2 siblings, 2 replies; 11+ messages in thread
From: tomas @ 2023-04-16  9:05 UTC (permalink / raw)
  To: help-gnu-emacs

[-- Attachment #1: Type: text/plain, Size: 712 bytes --]

On Sun, Apr 16, 2023 at 10:53:54AM +0200, Uwe Brauer wrote:
> 
> 
> Hi
> 
> I have to execute a series of commands like 
> 
> git checkout strings 
> mygit-push-named-branch strings
> etc
> 
> It is a list of these commands in a file. I can call 
> M-x shell 
> 
> And then copy each line to the shell where it is executed.
> 
> Is there any faster way, a command like
> execute this line via the shell.
> 
> I googled but cannot find anything.

Ask your Emacs, not Google. Emacs is your friend, Google isn't :)

c-h a (apropos) shell suggests shell-command-on-region, usually
bound to M-|

(of course, you'd have to mark the line; automating that is left
as an...)

Cheers
-- 
t

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how to send lines of a shell script directly to the shell
  2023-04-16  9:05 ` tomas
@ 2023-04-16 10:03   ` Uwe Brauer
  2023-04-16 12:57     ` tomas
  2023-04-16 10:09   ` Uwe Brauer
  1 sibling, 1 reply; 11+ messages in thread
From: Uwe Brauer @ 2023-04-16 10:03 UTC (permalink / raw)
  To: help-gnu-emacs

[-- Attachment #1: Type: text/plain, Size: 1040 bytes --]


> On Sun, Apr 16, 2023 at 10:53:54AM +0200, Uwe Brauer wrote:

> Ask your Emacs, not Google. Emacs is your friend, Google isn't :)

> c-h a (apropos) shell suggests shell-command-on-region, usually
> bound to M-|

> (of course, you'd have to mark the line; automating that is left
> as an...)

I tried this command out, before asking 😉
but this does not work, I mark the region

Run it and the mini-buffer asks:

shell-command-on-region

And you have to specify the command.


So that is thought that you run a already defined command on some
region.

But this is not what I want.

I want to send a certain line to the shell so that it is executed.
> Cheers

-- 
Warning: Content may be disturbing to some audiences
I strongly condemn Putin's war of aggression against the Ukraine.
I support to deliver weapons to Ukraine's military. 
I support the ban of Russia from SWIFT.
I support the EU membership of the Ukraine. 
https://addons.thunderbird.net/en-US/thunderbird/addon/gmail-conversation-view/

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5673 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how to send lines of a shell script directly to the shell
  2023-04-16  9:05 ` tomas
  2023-04-16 10:03   ` Uwe Brauer
@ 2023-04-16 10:09   ` Uwe Brauer
  2023-04-18 18:52     ` Leo Butler
  1 sibling, 1 reply; 11+ messages in thread
From: Uwe Brauer @ 2023-04-16 10:09 UTC (permalink / raw)
  To: help-gnu-emacs

[-- Attachment #1: Type: text/plain, Size: 823 bytes --]


> On Sun, Apr 16, 2023 at 10:53:54AM +0200, Uwe Brauer wrote:

> Ask your Emacs, not Google. Emacs is your friend, Google isn't :)

With a bit better search I obtained

https://stackoverflow.com/questions/6286579/emacs-shell-mode-how-to-send-region-to-shell

Which does what I want

> c-h a (apropos) shell suggests shell-command-on-region, usually
> bound to M-|

> (of course, you'd have to mark the line; automating that is left
> as an...)

> Cheers

-- 
Warning: Content may be disturbing to some audiences
I strongly condemn Putin's war of aggression against the Ukraine.
I support to deliver weapons to Ukraine's military. 
I support the ban of Russia from SWIFT.
I support the EU membership of the Ukraine. 
https://addons.thunderbird.net/en-US/thunderbird/addon/gmail-conversation-view/

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5673 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how to send lines of a shell script directly to the shell
  2023-04-16 10:03   ` Uwe Brauer
@ 2023-04-16 12:57     ` tomas
  0 siblings, 0 replies; 11+ messages in thread
From: tomas @ 2023-04-16 12:57 UTC (permalink / raw)
  To: help-gnu-emacs

[-- Attachment #1: Type: text/plain, Size: 785 bytes --]

On Sun, Apr 16, 2023 at 12:03:41PM +0200, Uwe Brauer wrote:
> 
> > On Sun, Apr 16, 2023 at 10:53:54AM +0200, Uwe Brauer wrote:
> 
> > Ask your Emacs, not Google. Emacs is your friend, Google isn't :)
> 
> > c-h a (apropos) shell suggests shell-command-on-region, usually
> > bound to M-|
> 
> > (of course, you'd have to mark the line; automating that is left
> > as an...)
> 
> I tried this command out, before asking 😉
> but this does not work, I mark the region
> 
> Run it and the mini-buffer asks:
> 
> shell-command-on-region
> 
> And you have to specify the command.

Oh, sorry, it was the other way around. We could, of course,
weasel our way out by specifyng /bin/sh or /bin/bash in the
minibuffer, but that's not what I meant ;-)

Cheers
-- 
t

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how to send lines of a shell script directly to the shell
  2023-04-16  8:53 how to send lines of a shell script directly to the shell Uwe Brauer
  2023-04-16  9:05 ` tomas
@ 2023-04-16 15:31 ` Eduardo Ochs
  2023-04-16 19:47   ` Uwe Brauer
  2023-04-22 19:49 ` parozusa
  2 siblings, 1 reply; 11+ messages in thread
From: Eduardo Ochs @ 2023-04-16 15:31 UTC (permalink / raw)
  To: help-gnu-emacs

On Sun, 16 Apr 2023 at 05:54, Uwe Brauer <oub@mat.ucm.es> wrote:
>
> Hi
>
> I have to execute a series of commands like
>
> git checkout strings
> mygit-push-named-branch strings
> etc
>
> It is a list of these commands in a file. I can call
> M-x shell
>
> And then copy each line to the shell where it is executed.
>
> Is there any faster way, a command like
> execute this line via the shell.
>
> I googled but cannot find anything.
>
> Regards
>
> Uwe Brauer


Hi Uwe,

take a look at this too:

  http://anggtwu.net/eepitch.html
  http://anggtwu.net/eepitch.html#trying-it
  http://anggtwu.net/emacsconf2021.html

The instructions at the "Trying it" are very simple and there's a very
nice demo in the first 30 seconds of my presentation at the
EmacsConf2021. The easiest way to watch it with subtitles is here,

  http://www.youtube.com/watch?v=qM0Luz78qGw

and the easiest way to create the 3-line block that sets up the target
buffer is explained here:

  http://anggtwu.net/eev-intros/find-eev-quick-intro.html#6.3

Cheers =),
  Eduardo Ochs
  http://anggtwu.net/#eev



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how to send lines of a shell script directly to the shell
  2023-04-16 15:31 ` Eduardo Ochs
@ 2023-04-16 19:47   ` Uwe Brauer
  0 siblings, 0 replies; 11+ messages in thread
From: Uwe Brauer @ 2023-04-16 19:47 UTC (permalink / raw)
  To: help-gnu-emacs

[-- Attachment #1: Type: text/plain, Size: 281 bytes --]


> On Sun, 16 Apr 2023 at 05:54, Uwe Brauer <oub@mat.ucm.es> wrote:

Hi Eduardo


> Hi Uwe,

> take a look at this too:

>   http://anggtwu.net/eepitch.html
>   http://anggtwu.net/eepitch.html#trying-it
>   http://anggtwu.net/emacsconf2021.html

Thanks I will have a look, later.


[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5673 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how to send lines of a shell script directly to the shell
  2023-04-16 10:09   ` Uwe Brauer
@ 2023-04-18 18:52     ` Leo Butler
  2023-04-18 19:14       ` Emanuel Berg
  2023-04-20 20:12       ` Uwe Brauer
  0 siblings, 2 replies; 11+ messages in thread
From: Leo Butler @ 2023-04-18 18:52 UTC (permalink / raw)
  To: help-gnu-emacs@gnu.org

On Sun, Apr 16 2023, Uwe Brauer <oub@mat.ucm.es> wrote:

>> On Sun, Apr 16, 2023 at 10:53:54AM +0200, Uwe Brauer wrote:
>
>> Ask your Emacs, not Google. Emacs is your friend, Google isn't :)
>
> With a bit better search I obtained
>
> https://stackoverflow.com/questions/6286579/emacs-shell-mode-how-to-send-region-to-shell
>
> Which does what I want

There are several solutions there, you don't mention which you chose.

Anyhow, I recommend keyboard macros. That is generally much faster than
any alternative...if I find myself using a keyboard macro repeatedly,
then I will invest time in finding or writing a better alternative.

Alternatively, org-mode can do pretty much what you want.

Leo


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how to send lines of a shell script directly to the shell
  2023-04-18 18:52     ` Leo Butler
@ 2023-04-18 19:14       ` Emanuel Berg
  2023-04-20 20:12       ` Uwe Brauer
  1 sibling, 0 replies; 11+ messages in thread
From: Emanuel Berg @ 2023-04-18 19:14 UTC (permalink / raw)
  To: help-gnu-emacs

Leo Butler wrote:

> Anyhow, I recommend keyboard macros. That is generally much
> faster than any alternative

They are?

-- 
underground experts united
https://dataswamp.org/~incal




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how to send lines of a shell script directly to the shell
  2023-04-18 18:52     ` Leo Butler
  2023-04-18 19:14       ` Emanuel Berg
@ 2023-04-20 20:12       ` Uwe Brauer
  1 sibling, 0 replies; 11+ messages in thread
From: Uwe Brauer @ 2023-04-20 20:12 UTC (permalink / raw)
  To: help-gnu-emacs

[-- Attachment #1: Type: text/plain, Size: 2070 bytes --]

>>> "LB" == Leo Butler <Leo.Butler@umanitoba.ca> writes:

> On Sun, Apr 16 2023, Uwe Brauer <oub@mat.ucm.es> wrote:
>>> On Sun, Apr 16, 2023 at 10:53:54AM +0200, Uwe Brauer wrote:
>> 
>>> Ask your Emacs, not Google. Emacs is your friend, Google isn't :)
>> 
>> With a bit better search I obtained
>> 
>> https://stackoverflow.com/questions/6286579/emacs-shell-mode-how-to-send-region-to-shell
>> 
>> Which does what I want

> There are several solutions there, you don't mention which you chose.

This one

(defun sh-send-line-or-region (&optional step)
  (interactive ())
  (let ((proc (get-process "shell"))
        pbuf min max command)
    (unless proc
      (let ((currbuff (current-buffer)))
        (shell)
        (switch-to-buffer currbuff)
        (setq proc (get-process "shell"))
        ))
    (setq pbuff (process-buffer proc))
    (if (use-region-p)
        (setq min (region-beginning)
              max (region-end))
      (setq min (point-at-bol)
            max (point-at-eol)))
    (setq command (concat (buffer-substring min max) "\n"))
    (with-current-buffer pbuff
      (goto-char (process-mark proc))
      (insert command)
      (move-marker (process-mark proc) (point))
      ) ;;pop-to-buffer does not work with save-current-buffer -- bug?
    (process-send-string  proc command)
    (display-buffer (process-buffer proc) t)
    (when step 
      (goto-char max)
      (next-line))
    ))

> Anyhow, I recommend keyboard macros. That is generally much faster than
> any alternative...if I find myself using a keyboard macro repeatedly,
> then I will invest time in finding or writing a better alternative.

Uff, I found this cumbersome



-- 
Warning: Content may be disturbing to some audiences
I strongly condemn Putin's war of aggression against the Ukraine.
I support to deliver weapons to Ukraine's military. 
I support the ban of Russia from SWIFT.
I support the EU membership of the Ukraine. 
https://addons.thunderbird.net/en-US/thunderbird/addon/gmail-conversation-view/

[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 5673 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: how to send lines of a shell script directly to the shell
  2023-04-16  8:53 how to send lines of a shell script directly to the shell Uwe Brauer
  2023-04-16  9:05 ` tomas
  2023-04-16 15:31 ` Eduardo Ochs
@ 2023-04-22 19:49 ` parozusa
  2 siblings, 0 replies; 11+ messages in thread
From: parozusa @ 2023-04-22 19:49 UTC (permalink / raw)
  To: help-gnu-emacs



  Uwe Brauer writes:

  > Hi
  >
  > I have to execute a series of commands like 
  >
  > git checkout strings 
  > mygit-push-named-branch strings
  > etc
  >
  > It is a list of these commands in a file. I can call 
  > M-x shell 
  >
  > And then copy each line to the shell where it is executed.
  >
  > Is there any faster way, a command like
  > execute this line via the shell.
  >
  > I googled but cannot find anything.
  >
  > Regards
  >
  > Uwe Brauer 

"list of commands in a file" = "shell script"

Make <file> executable by

$ chmod a+x <file>

and execute it

$ ./<file>




^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2023-04-22 19:49 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-16  8:53 how to send lines of a shell script directly to the shell Uwe Brauer
2023-04-16  9:05 ` tomas
2023-04-16 10:03   ` Uwe Brauer
2023-04-16 12:57     ` tomas
2023-04-16 10:09   ` Uwe Brauer
2023-04-18 18:52     ` Leo Butler
2023-04-18 19:14       ` Emanuel Berg
2023-04-20 20:12       ` Uwe Brauer
2023-04-16 15:31 ` Eduardo Ochs
2023-04-16 19:47   ` Uwe Brauer
2023-04-22 19:49 ` parozusa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).