首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Org-Babel代码可以转换为Elisp吗?

Org-Babel代码可以转换为Elisp吗?
EN

Stack Overflow用户
提问于 2019-04-11 17:52:22
回答 2查看 110关注 0票数 0

我有一个org-babel源代码,它通过tramp访问服务器并在那里运行shell脚本。有没有可能将这个源块转换成一个Elisp函数?

代码语言:javascript
复制
#+BEGIN_SRC sh :dir "/pscp:putty-connection-xy:/dir-yz" 
expect -c '
spawn bash -c  "scp file-to-copy user@server:/home1/dir-xy"
expect {
    "(yes/no)?" {
        send "yes\r"
        expect "*?assword:*"
        send "secretPassWord\r"
    }
    "*?assword:*" {
        send "secretPassWord\r"
    }
}
expect eof
'
#+END_SRC
EN

回答 2

Stack Overflow用户

发布于 2019-04-11 18:28:02

使用Tramp的多跳(未测试):

代码语言:javascript
复制
(copy-file "/plink:putty-connection-xy:/dir-yz/file-to-copy"
           "/plink:putty-connection-xy|ssh:user@server:/home1/dir-xy/")

它使用plinkssh 'tho。如果您可以从本地计算机直接连接user@server,则可以使用pscp缩短此连接

代码语言:javascript
复制
(copy-file "/pscp:putty-connection-xy:/dir-yz/file-to-copy"
           "/pscp:user@server:/home1/dir-xy/")
票数 0
EN

Stack Overflow用户

发布于 2019-04-11 18:38:54

解决方案很简单。我调用该块,并将其传递给'sh',以及该块的代码和参数。它起作用了

代码语言:javascript
复制
(org-babel-execute-src-block nil 
'("sh" 
   "cd /home1/
    expect -c '    
spawn bash -c \"scp file-to-copy user@server:/home1/dir-xy .\"
     expect { 
             \"*?assword:*\" {           
   send \"secretPassWord\\r\"        }    }   
   expect eof'
   " 
  ((:colname-names) (:rowname-names) 
   (:result-params "raw" "replace") 
   (:result-type . value) (:results . "silent") 
   (:exports . "code") 
   (:tangle . "no") (:hlines . "no") (:noweb . "no") 
   (:cache . "no") (:session . "none")) "" nil nil ))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55629618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档