O programa sftp
é sua própria coisa; é completamente independente e não relacionada a bash
, que conhece o valor de suas variáveis e expande $yr
. Em geral, você não pode passar variáveis bash para programas externos como esse, sem métodos de comunicação específicos para aplicativos.
Se você quiser apenas carregar ou baixar um arquivo com $yr
no nome do arquivo, use scp
, algo como:
yr=$(date +%Y)
scp -i key.pem un@server:/some/long/path/that/includes/$yr .
para download ou
scp -i key.pem some_local_file un@server:/some/long/$yr/path
para upload.
Se, por algum motivo, você realmente precisar usar sftp
especificamente, poderá criar um arquivo em lote dinamicamente, por exemplo,
sftp -i key.pem -b - un@server <<< "get /some/path/with/$yr"