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.