[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Executing bash bash script from emacs / elisp
From: |
Rainer M Krug |
Subject: |
Re: Executing bash bash script from emacs / elisp |
Date: |
Fri, 03 Sep 2010 14:41:16 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.10pre) Gecko/20100903 Lightning/1.0b2 Shredder/3.1.4pre |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 03/09/10 13:42, Deniz Dogan wrote:
> 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?
>>
Dear Mannon and Deniz
Thanks a lot for your input.
>
> 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.
OK - I understand
>
>> 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.
>
Thanks - I am using call-process-shell-command and if I set the BUFFER
to 0, it backgrounds as I want it
Cheers,
Rainer
- --
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology, UCT), Dipl. Phys. (Germany)
Centre of Excellence for Invasion Biology
Natural Sciences Building
Office Suite 2039
Stellenbosch University
Main Campus, Merriman Avenue
Stellenbosch
South Africa
Tel: +33 - (0)9 53 10 27 44
Cell: +27 - (0)8 39 47 90 42
Fax (SA): +27 - (0)8 65 16 27 82
Fax (D) : +49 - (0)3 21 21 25 22 44
Fax (FR): +33 - (0)9 58 10 27 44
email: Rainer@krugs.de
Skype: RMkrug
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkyA7OwACgkQoYgNqgF2egqGmQCcDWWvC4t1/liCgNtcb2twxmga
RV0AnAjoemamKaO2XqXDLLq7LhMSJvvr
=VuAy
-----END PGP SIGNATURE-----