Pregunta:
Estoy experimentando con la obtención de datos desde el modo de organización en mis scripts de shell y me he encontrado con una rareza:
#+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 |
¿Alguna idea de lo que está pasando?
Respuesta:
La diferencia es qué shell se llama para evaluar su bloque. shell
llama a lo que sea que sea su shell predeterminado, mientras que sh
llama a /bin/sh
específicamente. Su shell predeterminado probablemente sea bash, que es una extensión de sh. echo $0
le dirá qué ejecutable está ejecutando su shell:
#+BEGIN_SRC shell
echo $0
#+END_SRC
#+RESULTS:
: /bin/bash
#+BEGIN_SRC sh
echo $0
#+END_SRC
#+RESULTS:
: sh
Cualquiera de los shells en org-babel-shell-names
que esté instalado en su sistema funcionará.