Eksperymentuję z pozyskiwaniem danych z trybu org do moich skryptów powłoki i natknąłem się na dziwność:
#+tblname: simple-table
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
#+name: work-with-simple-list-shell
#+begin_src shell :var tbl=simple-table
echo "$tbl"
#+end_src
#+RESULTS: work-with-simple-list-shell
: 1
#+name: work-with-simple-list-sh
#+begin_src sh :var tbl=simple-table
echo "$tbl"
#+end_src
#+RESULTS: work-with-simple-list-sh
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
Masz pomysł, co się dzieje?
C-c C-v I
również sprawdzić, czy oba bloki src mają takie same argumenty nagłówka?Odpowiedzi:
Różnica polega na tym, która powłoka zostaje wywołana w celu oceny bloku.
shell
wywołuje jakąkolwiek domyślną powłokę, a konkretniesh
połączenia/bin/sh
. Domyślną powłoką jest prawdopodobnie bash, który jest rozszerzeniem sh.echo $0
powie ci, jaki plik wykonywalny działa twoja powłoka:Każda z powłok
org-babel-shell-names
zainstalowanych w systemie będzie działać.źródło