我正在尝试使用如下脚本运行lftp:
$ lftp -f deploy.scp
但是我想在
deploy.scp
内部使用l/p环境变量,如下所示:
open -u $FTP_USER,$FTP_PASSWORD $FTP_HOST;
这有可能吗?我已经在手册页中找到了任何帮助。
如果你把它放在deploy.scp的最后一行(*在bye命令之后):
open -u $FTP_USER,$FTP_PASSWORD $FTP_HOST;
然后你可以使用以下命令:
lsftp -f deploy.scp `cat deploy.scp | tail -1`
你可以做
<deploy.scp xargs -l sh -c 'eval echo $0 $*' | lftp
或者,为了节省一些打字,可以创建一个别名,比如说
alias xv=$'xargs -l sh -c \'eval echo $0 $*\''
然后
xv <deploy.scp | lftp
虽然它需要额外的工具
envsubst
,但这通过流程替换对我有用
lftp -f <(envsubst < lftp_commands.txt)
假设我已经设置了这些环境变量并且
lftp_commands.txt
包含类似的内容
open --user $FTP_USER --password $FTP_PASSWORD $FTP_HOST
put example.txt
exit