RSync独立工作,而不是Sublime Text Build System中的脚本

时间:2013-07-24 14:07:22

标签: bash build cygwin sublimetext2 rsync

这是我的脚本,uses expect填写rsync的密码字段,这是我使用变量的唯一方法($ FILE,欢迎提出建议)。

它在cmd中工作,输出正如预期的那样(-P开关输出进度条,所以我知道它无需检查就可以工作)。

#!/bin/bash
cd "/cygdrive/c/"
FILE=$(cygpath -u $1); #full file path to sync
a='USER@HOST:/; expect "*?assword:*" {send "user_pass\r";interact};'
LINE="spawn rsync -P --port=port $FILE "$a 
expect -c "$LINE"

这是我在.sublime-project文件中的Sublime Text构建系统(我在我的路径中包含了cygwin / bin,因此它识别bash。)。

{
    "name" : "RSync This",
    "shell":  true,
    "cmd": ["bash","/cygdrive/c/rsync.sh","$file"]            
}

输出:

spawn rsync -P --port=22 /cygdrive/c/test USER@HOST:/
USER@HOST's password: [Finished in 0.8s]

没有进度条,没有变化。无法弄清楚是什么。

任何建议我的错误在哪里?

1 个答案:

答案 0 :(得分:0)

Sublime Text控制台/构建系统不是交互式的,因此很遗憾无法在构建期间输入输入。要解决这个问题,您需要使用其他方式进行身份验证,例如使用SSH密钥,或者您需要编写一个使用sublime.Window.show_input_panel()的小plugin来获取密码。用户。