Se eseguo i seguenti blocchi di shell babele
#+BEGIN_SRC sh :session one :results output
ssh staging
#+END_SRC
#+BEGIN_SRC sh :session one :results output
hostname
#+END_SRC
Org crea un buffer di shell chiamato one
, viene eseguito ssh staging
e quindi, dopo la connessione, viene eseguito hostname
in gestione temporanea . Tuttavia, se modifico il comando ssh ed eseguo di nuovo, tenta di eseguirlo dall'interno della sessione uno, dall'host di gestione temporanea. Se chiudo il buffer one
reimposta la sessione come la prossima volta che viene eseguito qualsiasi comando con quel nome di sessione lo ricrea. Quello che non sono riuscito a trovare è un metodo per forzare un particolare blocco babel a inizializzare sempre una nuova sessione.
Sono consapevole che per alcune lingue (in particolare elisp) ciò non sarebbe possibile. Suppongo che potrei anteporre la sessione con un blocco elisp contenente (kill-buffer "one")
, ma preferirei che fosse un argomento di intestazione, se possibile. Sono anche consapevole che per questo esempio potrei semplicemente combinare i due in un singolo blocco senza sessione, ma sono interessato a sequenze più complicate.
Esiste un :prologue
comando o qualche altro argomento speciale per :session
forzare quel blocco a inizializzare una nuova shell su ogni invocazione?
org-babel-initiate-session
.