Saya mencoba menyalurkan output dari satu blok sumber ke blok sumber berikutnya sebagai input standar. Berikut ini contoh dari apa yang saya miliki sejauh ini:
Create stdin data:
#+header: :exports code
#+header: :results output
#+begin_src sh
echo "That goes to the next"
#+end_src
#+name: piped
#+RESULTS:
: That goes to the next
Use "piped" as stdin:
#+header: :exports results
#+header: :stdin piped
#+header: :results output
#+begin_src sh
VALUE=$(cat)
echo "I got:"
echo "$VALUE"
#+end_src
Masalah saya dengan ini adalah:
Saya harus secara manual membuat hasil dari blok pertama dengan menekan
C-c C-c
hasilnya harus dimasukkan dalam org-buffer (output besar tidak diperlukan jika tidak)
hasilnya harus dinamai secara manual
Apakah ada solusi atau cara yang lebih baik untuk melakukan ini?
Saya memiliki kasus penggunaan yang serupa, dan menggulung eksportir sederhana yang memungkinkan saya menggunakan mode json untuk sumber / input dari stdin:
Kemudian, tambahkan
(passthrough . t)
ke org-babel-list-langauges, dan ini dia sedang beraksi:sumber
Panggil blok src dari yang lain menggunakan referensi "noweb" (lihat
(info "(org) Noweb reference syntax")
):sumber
cat
dalam shell hanyalah contoh sederhana.Cara lain untuk mengatasi masalah ini adalah dengan memberi nama input sebagai CONTOH atau blok QUOTE jika input benar-benar statis. Sesuatu seperti ini:
atau CONTOH jika Anda lebih suka:
kemudian referensi blok-blok yang disebutkan dalam kode yang ingin Anda evaluasi; di sini kita menggunakan contoh QUOTE:
Karena nilai
some-json
blok bersifat statis, tidak perlu untuk mengevaluasinya. Mengevaluasithe-code
blok memberi:sumber