シェル・FTP接続でファイル転送する方法

putでファイルを転送し、getでファイルを取得する

### コマンドラインでSFTP接続する方法
$ sftp ubuntu@***.**.**.**
sftp> put sample.txt
Uploading sample.txt to /home/ubuntu/sample.txt
sample.txt 100%

### シェルでSFTPする方法
test.shにファイルの転送、取得を書いて、sample.shにftp接続する際のパスワードを書きます。
$ chmod +x test.sh
$ chmod +x sample.sh

test.sh

sftp ubuntu@***.**.***.** << END
get nodesource_setup.sh
put sample.txt
quit
END

sample.sh

#!/bin/bash
expect -c "
  set timeout 3
  spawn ./test.sh
  expect \"ubuntu@***.**.***.**'s password:\"
  send \"hogehoge\n\"
  interact
"

$ ./sample.sh
spawn ./test.sh
ubuntu@***.**.***.**’s password:
Connected to ***.**.***.**.
sftp> get nodesource_setup.sh
Fetching /home/ubuntu/nodesource_setup.sh to nodesource_setup.sh
/home/ubuntu/nodesource_setup.sh 100% 14KB 345.7KB/s 00:00
sftp> put sample.txt
Uploading sample.txt to /home/ubuntu/sample.txt
sample.txt 100% 4 0.3KB/s 00:00
sftp> quit

ほう、これがやりたかった。

sftp ubuntu@hoge.com としてもできるが、passwordの入力は同じか…