Been hit by this a few times, so here is my workings:
Some text before the properties, this should according to
the manual, prevent properties from working...
- Seems to work fine - which I like.
# These work for 'shell' only, not 'sh'.
#+PROPERTY: header-args:shell :var propC_headArgsCshell_0="1st"
#+PROPERTY: header-args:shell+ :var propC_headArgsCshellY_1="dc=example,dc=com"
#+PROPERTY: header-args:shell+ :var propC_headArgsCshellY_2="cn=Manager"
#
# While these apply to all:
#+PROPERTY: header-args :var propC_headArgs_Cvar_1="dc0example,dc=com"
#+PROPERTY: header-args+ :var propC_headArgsY_Cvar_2="cn=Manager"
#
# Following does not work, yes that is as shown in the guide!
#+PROPERTY: var propC_var_1="dc=example,dc=com"
#+PROPERTY: var+ propC_varY_2="cn=Manager"
#
#+begin_quote
Properties can be inserted on buffer level. That means they apply
before the propC_headArgsCshell_0 headline and can be inherited by all entries in a
file. Property blocks defined before propC_headArgsCshell_0 headline needs to be
located at the top of the buffer, allowing only comments above.
#+end_quote
- source [[https://orgmode.org/manual/Property-Syntax.html][Property Syntax (The Org Manual)]]
Using org-mode version
#+begin_src emacs-lisp
(org-version)
#+end_src
#+results:
: 9.4.4
* Example for shell
#+begin_src shell :var Cvar_local0='dc=example,dc=net' Cvar_local1="cn=Manager,$Cvar_local0"
echo Predict Arg Value
echo value propC_headArgsCshell_0 $propC_headArgsCshell_0
echo value Cvar_local0 $Cvar_local0
echo value Cvar_local1 $Cvar_local1
echo value! propC_var_1 $propC_var_1
echo value! propC_varY_2 $propC_varY_2
echo value propC_headArgsCshellY_1 $propC_headArgsCshellY_1
echo value propC_headArgsCshellY_2 $propC_headArgsCshellY_2
echo value propC_headArgs_Cvar_1 $propC_headArgs_Cvar_1
echo value propC_headArgsY_Cvar_2 $propC_headArgsY_Cvar_2
#+end_src
#+results:
| Predict | Arg | Value |
| value | propC_headArgsCshell_0 | 1st |
| value | Cvar_local0 | dc=example |
| value | Cvar_local1 | cn=Manager,$Cvar_local0 |
| value! | propC_var_1 | |
| value! | propC_varY_2 | |
| value | propC_headArgsCshellY_1 | dc=example,dc=com |
| value | propC_headArgsCshellY_2 | cn=Manager |
| value | propC_headArgs_Cvar_1 | dc0example,dc=com |
| value | propC_headArgsY_Cvar_2 | cn=Manager |
* Example of sh
using ~sh~ rather than shell, they are different:
#+begin_src sh :var Cvar_local0='dc=example,dc=net' Cvar_local1="cn=Manager,$Cvar_local0"
echo predict arg value
echo blank propC_headArgsCshell_0 $propC_headArgsCshell_0
echo value Cvar_local0 $Cvar_local0
echo value Cvar_local1 $Cvar_local1
echo value! propC_var_1 $propC_var_1
echo value! propC_varY_2 $propC_varY_2
echo blank propC_headArgsCshellY_1 $propC_headArgsCshellY_1
echo blank propC_headArgsCshellY_2 $propC_headArgsCshellY_2
echo value propC_headArgs_Cvar_1 $propC_headArgs_Cvar_1
echo value propC_headArgsY_Cvar_2 $propC_headArgsY_Cvar_2
#+end_src
#+results:
| predict | arg | value |
| blank | propC_headArgsCshell_0 | |
| value | Cvar_local0 | dc=example |
| value | Cvar_local1 | cn=Manager,$Cvar_local0 |
| value! | propC_var_1 | |
| value! | propC_varY_2 | |
| blank | propC_headArgsCshellY_1 | |
| blank | propC_headArgsCshellY_2 | |
| value | propC_headArgs_Cvar_1 | dc0example,dc=com |
| value | propC_headArgsY_Cvar_2 | cn=Manager |
Glad to get that down.