これは私のスクリプトであり、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 ビルド sys です (パスに 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]
プログレスバーも変更もありません。何が得られるかわかりません。
私の間違いはどこですか?