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

时间:2019-04-11 09:52:22

标签: emacs org-mode org-babel

我有一个org-babel源,它通过流浪汉访问服务器并在其中运行shell脚本。可以将这个源代码块转换成Elisp函数吗?

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

2 个答案:

答案 0 :(得分:0)

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

(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来缩短此时间:

(copy-file "/pscp:putty-connection-xy:/dir-yz/file-to-copy"
           "/pscp:user@server:/home1/dir-xy/")

答案 1 :(得分:0)

解决方案很简单。我打电话给街区并把它交给 “ sh”,该块的代码和参数。有效

App\User::select('*')
    ->from(\DB::raw("..."))
    ->where('month_gap', '>=', 6)
    ->get();