help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Executing bash bash script from emacs / elisp


From: Deniz Dogan
Subject: Re: Executing bash bash script from emacs / elisp
Date: Fri, 3 Sep 2010 13:42:53 +0200

2010/9/3 Rainer M Krug <r.m.krug@gmail.com>:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 03/09/10 13:09, Deniz Dogan wrote:
>> 2010/9/3 Rainer M Krug <R.M.Krug@gmail.com>:
>>> Hi
>>> I am a complete beginner concerning elisp - so please bear with me if
>>> this is a simple question.
>>>
>>> I would like to execute a shell (bash) script from elisp, which is then
>>> called from org-babel to do some post-processing of the result of
>>> tangling. Tangling in org-babel has a hook for post-processing, and I
>>> know how to set it. Therefore I am simply looking for a way of executing
>>> my shell script from that hook.
>>>
>>> essentially:
>>>
>>> this-function-executes-a-shell-script(The_Shell_Script.sh)
>>>
>>> Thanks,
>>> Rainer
>>>
>>>
>>>
>>
>> You want to look at the functions `call-process-shell-command' and
>> `call-process'.
>>
>> Example:
>> (call-process-shell-command "the_shell_script.sh" nil nil nil "arg1" "arg2")
>>
>> That's equivalent to running "the_shell_script.sh arg1 arg" in a shell.
>>
>
> Thanks a lot. After looking around I also found async-shell-command and
> shell-command. Am I right in assuming that, as the script is not
> producing any output, these commands are equivalent?
>

Those two functions are interactive, i.e. they can be called by the
user directly using e.g. M-x shell-command. Nothing stops you from
using them, but they both basically just wrap call-process in a bunch
of user interaction handling.

> In addition, when using async-shell-command I get asked "A command is
> running. Kill it? (yes or no)"
> Is there any way to avoid this?
>

Yes, it should be enough to simply set the OUTPUT-BUFFER argument to
nil to tell Emacs not to print the output anywhere, hence not creating
a buffer for the process.

-- 
Deniz Dogan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]