sftp
é um comando shell. Ele lê comandos SFTP em sua entrada padrão.
Você pode usar um documento aqui para passar a entrada para um comando.
sftp -v -oIdentityFile=path user@server <<EOF
put localPath ftpPath
EOF
Você pode usar variáveis dentro do documento aqui.
local_path=/path/to/local/file
remote_path=/somewhere/or/other
sftp -v -oIdentityFile=path user@server <<EOF
put $local_path $remote_path
EOF
Esta não é a maneira mais simples de copiar um arquivo. O SFTP permite navegar e transferir arquivos, mas há também um comando shell para copiar diretamente um arquivo (ou até mesmo um diretório, recursivamente).
scp -o IdentityFile=path localPath user@server:remotePath