Re: [O] Blank first line in a tangled file prevents src block execution
Nick Dokos writes: > Eric Schulte wrote: > >> Or try >> >> #+begin_src sh :tangle code/get_wavs.sh :shebang #!/bin/bash >> for fn_in in "$@"; do >> fn_out=$(sed -e 's|\.3gp$||g' -e 's|$|.wav|g' <<< $fn_in) >> ffmpeg -i $fn_in -vn -f wav -acodec pcm_u8 $fn_out >> done >> #+end_src >> > > That reminds me: I believe shebang is used in tangling, but not in evaluation. > Assuming that's correct, is there any fundamental reason for it not being used > in evaluation? > Shell code blocks are evaluated using the org-babel-sh-command variable. When the executing command is explicitly provided there is no need for a shebang line, and it would be (to my knowledge) ignored. Best, -- Eric Schulte http://cs.unm.edu/~eschulte/
Re: [O] Blank first line in a tangled file prevents src block execution
Eric Schulte wrote: > Or try > > #+begin_src sh :tangle code/get_wavs.sh :shebang #!/bin/bash > for fn_in in "$@"; do > fn_out=$(sed -e 's|\.3gp$||g' -e 's|$|.wav|g' <<< $fn_in) > ffmpeg -i $fn_in -vn -f wav -acodec pcm_u8 $fn_out > done > #+end_src > That reminds me: I believe shebang is used in tangling, but not in evaluation. Assuming that's correct, is there any fundamental reason for it not being used in evaluation? Panruo Wu's question in another thread ( http://thread.gmane.org/gmane.emacs.orgmode/53157 ) brought this to mind. Thanks, Nick
Re: [O] Blank first line in a tangled file prevents src block execution
Nick Dokos writes: > Leo Alekseyev wrote: > >> I have the following source block that I tangle to produce a short script: >> >> #+begin_src sh :tangle code/get_wavs.sh >> #!/bin/bash >> for fn_in in "$@"; do >> fn_out=$(sed -e 's|\.3gp$||g' -e 's|$|.wav|g' <<< $fn_in) >> ffmpeg -i $fn_in -vn -f wav -acodec pcm_u8 $fn_out >> done >> #+end_src >> >> However, the tangled file has a blank first line. As a result, I >> can't seem to run this script either using sh -c, or by putting it >> inside a code block. In other words, the following line fails: >> > > Add ":padline no" > Or try #+begin_src sh :tangle code/get_wavs.sh :shebang #!/bin/bash for fn_in in "$@"; do fn_out=$(sed -e 's|\.3gp$||g' -e 's|$|.wav|g' <<< $fn_in) ffmpeg -i $fn_in -vn -f wav -acodec pcm_u8 $fn_out done #+end_src -- Eric Schulte http://cs.unm.edu/~eschulte/
Re: [O] Blank first line in a tangled file prevents src block execution
Leo Alekseyev wrote: > I have the following source block that I tangle to produce a short script: > > #+begin_src sh :tangle code/get_wavs.sh > #!/bin/bash > for fn_in in "$@"; do > fn_out=$(sed -e 's|\.3gp$||g' -e 's|$|.wav|g' <<< $fn_in) > ffmpeg -i $fn_in -vn -f wav -acodec pcm_u8 $fn_out > done > #+end_src > > However, the tangled file has a blank first line. As a result, I > can't seem to run this script either using sh -c, or by putting it > inside a code block. In other words, the following line fails: > Add ":padline no" Nick
[O] Blank first line in a tangled file prevents src block execution
I have the following source block that I tangle to produce a short script: #+begin_src sh :tangle code/get_wavs.sh #!/bin/bash for fn_in in "$@"; do fn_out=$(sed -e 's|\.3gp$||g' -e 's|$|.wav|g' <<< $fn_in) ffmpeg -i $fn_in -vn -f wav -acodec pcm_u8 $fn_out done #+end_src However, the tangled file has a blank first line. As a result, I can't seem to run this script either using sh -c, or by putting it inside a code block. In other words, the following line fails: sh -c "code/test.sh data/salsa/20120308_av_jc/song2/*.3gp" code/test.sh: 4: Syntax error: redirection unexpected And, similarly, this fails #+begin_src sh code/get_wavs.sh data/salsa/20120308_av_jc/song2/*.3gp #+end_src On the other hand, the script runs fine from the command line, or from an org-mode shell: link, i.e. just running code/test.sh data/salsa/20120308_av_jc/song2/*.3gp at bash prompt produces the desired result. I am not sure what the rules are about blank lines before the hash-bang directive in Bash, and why in particular the blank line seems to cause sh -c ... and orb-babel src execution to break, but the current behavior seems broken.