emacs-orgmode
[Top][All Lists]
Advanced

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

[O] do sh source blocks ignore args? [7.8.09]


From: Neil Best
Subject: [O] do sh source blocks ignore args? [7.8.09]
Date: Thu, 26 Apr 2012 15:44:26 -0500

Can sh source block take arguments?  I get nothing.

#+NAME: test(foo="bar")
#+BEGIN_SRC sh :session :results output verbatim replace
  echo "1. foo is $foo"
  echo "2. foo is ${foo}"
#+END_SRC

#+RESULTS:
: 1. foo is
: 2. foo is


. . . but this is fine:

#+NAME: test2
#+BEGIN_SRC sh :var foo="bar" :session :results output verbatim
replace
  echo "1. foo is $foo"
  echo "2. foo is ${foo}"
#+END_SRC

#+RESULTS:
: 1. foo is bar
: 2. foo is bar

When I tried this:

#+CALL: test("baz")

I get "reference 'test' not found in this buffer" -- what does this
mean?  I got a similar message when I tried to define a simple call
using an R fragment that has a session associated with it.  Evaluating
the code block with the default argument works fine, but a #+CALL:
construct fails.  Maybe this is a separate issue.

I trolled the web for relevant examples or reports but found none.  My
setup is pretty much out-of-the-box.  I am on Ubuntu Oneiric so sh is
a symlink to dash.  I was not aware of dash until now so I don't know
what the implications of that are.

This example may be overly trivial.  My ultimate goal is to generate
shell scripts as function of the argument and tangle them out
something like this:

#+BEGIN_SRC sh :tangle someArg.sh
  <<script("someArg")>>
#+END_SRC

So the results of the "function" will be lines of script code with
variables already interpolated using echo and a heredoc.  Note that
test2 will not allow me to paramterize this, AFAIK.  I'll have to
write each tangle block by hand but there's a small number of them.
If there is a more clever way I am certainly interested, but it seems
irrelevant until I understand what is happening above.  Thanks.  I am
very intrigued by LP possibilities using Org after messing with Sweave
for a year+, so please bear with me as I cut my teeth.



reply via email to

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