Re: [O] [babel] problem with sh blocks

2012-02-23 Thread Andreas Leha
Bernt Hansen be...@norang.ca writes:

 Andreas Leha andreas.l...@med.uni-goettingen.de writes:

 Org-mode version 7.8.03, pulled last week
   (how do I get the release info as well?)

 If you are running from a git repository then M-x org-version should
 show the results of 'git describe' automatically.

 C-u M-x org-version RET
 Org-mode version 7.8.03 (release_7.8.03.420.gaf2a4)

 Regards,
 Bernt

Hi Bernt,

thanks.  I did not get the git describe part.

Now looking at the code of org-version, I saw, that I
get this only, when I run org from the repository (I did make install and
load from another place).  Kind of obvious.

Now I am loading org from the repository.  Bit anyway, since I have some
changes committed locally on top, that won't give useful (useful to others)
information.

Regards,
Andreas




Re: [O] [babel] problem with sh blocks

2012-02-20 Thread Sebastien Vauban
Hi Andreas Leha,

Andreas Leha wrote:
 Hi all,

 why is it, that I can not use this code in sh blocks (I get sh: 2: Bad
 substitution), even though it is valid when I run the tangled
 script?  Is this a known thing?

 #+begin_src sh :shebang #!/bin/bash :tangle test.sh
   for i in *.org; do
   echo cp $i ${i/%.org/.bak.org}
   done
 #+end_src

 How can I get the above block to execute?

I just copied your block into a fresh test.org file, and eval'ed the code
block:

#+begin_src sh :shebang #!/bin/bash :tangle test.sh
  for i in *.org; do
  echo cp $i ${i/%.org/.bak.org}
  done
#+end_src

#+results:
| cp | test-export4.org | test-export4.bak.org |
| cp | test-export5.org | test-export5.bak.org |
| cp | test-export7.org | test-export7.bak.org |

Works perfectly for me, it seems, on:

GNU Emacs 24.0.92.1 (i386-mingw-nt5.1.2600) of 2012-01-23 on MARVIN
Org-mode version 7.8.03 (release_7.8.03.410.g77fb)

Best regards,
  Seb

-- 
Sebastien Vauban




Re: [O] [babel] problem with sh blocks

2012-02-20 Thread Andreas Leha
Hi Seb

 why is it, that I can not use this code in sh blocks (I get sh: 2: Bad
 substitution), even though it is valid when I run the tangled
 script?  Is this a known thing?

 #+begin_src sh :shebang #!/bin/bash :tangle test.sh
   for i in *.org; do
   echo cp $i ${i/%.org/.bak.org}
   done
 #+end_src

 How can I get the above block to execute?

 I just copied your block into a fresh test.org file, and eval'ed the code
 block:

 #+begin_src sh :shebang #!/bin/bash :tangle test.sh
   for i in *.org; do
   echo cp $i ${i/%.org/.bak.org}
   done
 #+end_src

 #+results:
 | cp | test-export4.org | test-export4.bak.org |
 | cp | test-export5.org | test-export5.bak.org |
 | cp | test-export7.org | test-export7.bak.org |

 Works perfectly for me, it seems, on:

 GNU Emacs 24.0.92.1 (i386-mingw-nt5.1.2600) of 2012-01-23 on MARVIN
 Org-mode version 7.8.03 (release_7.8.03.410.g77fb)

 Best regards,
   Seb

thanks for testing!

That's what I'd like to get as well.  I tried with emacs -Q with no
success.  Seems the sh block is not executed by my bash.

After more thoughts on this my guess is that it has to do with dash
being the default shell in debian.

#+begin_src sh :shebang #!/bin/bash :tangle test.sh
  echo $_
  ls -l /bin/sh
#+end_src

#+RESULTS:
| /bin/sh|   |  |  |   | ||   | ||  |
| lrwxrwxrwx | 1 | root | root | 4 | Sep | 27 | 14:23 | /bin/sh | - | dash |

How can I get this to be /bin/bash?  Preferably from within org mode,
but I am grateful for any hint.

(Somehow this question seems familiar to me...)

My setup:

I am on Debian testing with
GNU Emacs 24.0.93.1 (x86_64-pc-linux-gnu, GTK+ Version 3.2.3) of
2012-02-16 on zelenka, modified by Debian
Org-mode version 7.8.03, pulled last week
  (how do I get the release info as well?)

Regards,
Andreas




Re: [O] [babel] problem with sh blocks

2012-02-20 Thread Sebastien Vauban
Hi Andreas Leha,

Andreas Leha wrote:
 Hi Seb

 why is it, that I can not use this code in sh blocks (I get sh: 2: Bad
 substitution), even though it is valid when I run the tangled
 script?  Is this a known thing?

 #+begin_src sh :shebang #!/bin/bash :tangle test.sh
   for i in *.org; do
   echo cp $i ${i/%.org/.bak.org}
   done
 #+end_src

 How can I get the above block to execute?

 I just copied your block into a fresh test.org file, and eval'ed the code
 block:

 #+begin_src sh :shebang #!/bin/bash :tangle test.sh
   for i in *.org; do
   echo cp $i ${i/%.org/.bak.org}
   done
 #+end_src

 #+results:
 | cp | test-export4.org | test-export4.bak.org |
 | cp | test-export5.org | test-export5.bak.org |
 | cp | test-export7.org | test-export7.bak.org |

 Works perfectly for me, it seems.

 thanks for testing!

 That's what I'd like to get as well.  I tried with emacs -Q with no
 success.  Seems the sh block is not executed by my bash.

 After more thoughts on this my guess is that it has to do with dash
 being the default shell in debian.

 #+begin_src sh :shebang #!/bin/bash :tangle test.sh
   echo $_
   ls -l /bin/sh
 #+end_src

 #+RESULTS:
 | /bin/sh|   |  |  |   | ||   | ||  |
 | lrwxrwxrwx | 1 | root | root | 4 | Sep | 27 | 14:23 | /bin/sh | - | dash |

 How can I get this to be /bin/bash?  Preferably from within org mode,
 but I am grateful for any hint.

I have the following for my Emacs config:

--8---cut here---start-8---
  (setq shell-file-name bash)
  (setenv SHELL shell-file-name)
--8---cut here---end---8---

Note that this is related to an old discussion I had with Eric Schulte. See
http://lists.gnu.org/archive/html/emacs-orgmode/2009-12/msg00078.html.

Best regards,
  Seb

-- 
Sebastien Vauban




Re: [O] [babel] problem with sh blocks

2012-02-20 Thread Bernt Hansen
Andreas Leha andreas.l...@med.uni-goettingen.de writes:

 Org-mode version 7.8.03, pulled last week
   (how do I get the release info as well?)

If you are running from a git repository then M-x org-version should
show the results of 'git describe' automatically.

C-u M-x org-version RET
Org-mode version 7.8.03 (release_7.8.03.420.gaf2a4)

Regards,
Bernt



Re: [O] [babel] problem with sh blocks

2012-02-20 Thread Eric Schulte
Hi,

As with the other recent sh-block email, the problem is likely due to
the interpreter used (e.g., bash as compared to dash).  See the value of
`org-babel-sh-command' which defaults to sh which defaults to a POSIX
rather than bash shell on many systems.

Best,

Andreas Leha andreas.l...@med.uni-goettingen.de writes:

 Hi all,

 why is it, that I can not use this code in sh blocks (I get sh: 2: Bad
 substitution), even though it is valid when I run the tangled
 script?  Is this a known thing?

 #+begin_src sh :shebang #!/bin/bash :tangle test.sh
   for i in *.org; do
   echo cp $i ${i/%.org/.bak.org}
   done
 #+end_src

 How can I get the above block to execute?

 Thanks in advance,
 Andreas



-- 
Eric Schulte
http://cs.unm.edu/~eschulte/



Re: [O] [babel] problem with sh blocks

2012-02-20 Thread Andreas Leha
Eric Schulte eric.schu...@gmx.com writes:

Hi Eric,
 Hi,

 As with the other recent sh-block email, the problem is likely due to
 the interpreter used (e.g., bash as compared to dash).  See the value of
 `org-babel-sh-command' which defaults to sh which defaults to a POSIX
 rather than bash shell on many systems.

 Best,

 Andreas Leha andreas.l...@med.uni-goettingen.de writes:

 Hi all,

 why is it, that I can not use this code in sh blocks (I get sh: 2: Bad
 substitution), even though it is valid when I run the tangled
 script?  Is this a known thing?

 #+begin_src sh :shebang #!/bin/bash :tangle test.sh
   for i in *.org; do
   echo cp $i ${i/%.org/.bak.org}
   done
 #+end_src

 How can I get the above block to execute?

 Thanks in advance,
 Andreas



thanks a lot!  The org-babel-sh-command did the trick!

Cheers,
Andreas