org-mode – ¿Cuál es la diferencia entre sh y shell para org-babel?

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á.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım