Sh ve shell for org-babel arasındaki fark nedir?


12

Kuruluş modundan kabuk komut dosyalarıma veri aktarımı yapıyorum ve bir gariplikle karşılaşıyorum:

#+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 |

Neler olup bittiği hakkında bir fikrin var mı?


1
Ob-sh, ob-shell lehine onaylanmamış gibi görünüyor ( Posta listesinin bu iş parçacığında görüldüğü gibi ).
— dangom

Eğer sadece birbirlerinin takma adı ise, neden davranış farkı?
— stsquad

Yapılandırmanızda garip bir şey var. Burada herhangi bir davranış farkı görmüyorum. $ SHELL'i yankılarsam, her ikisi için de aynı kabuğu alıyorum. Ayrıca, C-c C-v Iher iki src bloğunun da aynı başlık-argümanlarına sahip olup olmadığını kontrol etmeye çalıştınız mı?
— dangom

@dangom: hmm Lang: shell'e Lang: sh ve header-args: shell'e header-args: sh için aynı başlık argümanları kümesi kaydedildi, ancak her ikisi de sıfır olarak ayarlandı. $ SHELL her iki durumda da bash bildiriyor.
— stsquad

Yanıtlar:


8

Fark, bloğunuzu değerlendirmek için hangi kabuğun çağrıldığıdır. özel olarak çağrı shellyaparken varsayılan kabuğunuz ne olursa olsun shçağırır /bin/sh. Varsayılan kabuğunuz muhtemelen bash şeklindedir, bu da sh'nin bir uzantısıdır. echo $0size kabuğunuzun hangi yürütülebilir dosyayı çalıştırdığını söyleyecektir:

#+BEGIN_SRC shell
echo $0
#+END_SRC

#+RESULTS:
: /bin/bash


#+BEGIN_SRC sh
echo $0
#+END_SRC

#+RESULTS:
: sh

org-babel-shell-namesSisteminizde kurulu olan kabuklardan herhangi biri çalışacaktır.


Giriş değişkeninin neden bu kadar munged olduğuna hala kafam karıştı. Bu bash değişkenle farklı bir şey yapıyor mu?
— stsquad
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.