LFTP脚本中的环境变量

问题描述 投票:0回答:3

我正在尝试使用如下脚本运行lftp:

$ lftp -f deploy.scp

但是我想在

deploy.scp
内部使用l/p环境变量,如下所示:

open -u $FTP_USER,$FTP_PASSWORD $FTP_HOST;

这有可能吗?我已经在手册页中找到了任何帮助。

bash terminal console lftp
3个回答
0
投票

如果你把它放在deploy.scp的最后一行(*在bye命令之后):

open -u $FTP_USER,$FTP_PASSWORD $FTP_HOST;

然后你可以使用以下命令:

lsftp -f deploy.scp `cat deploy.scp | tail -1`

0
投票

你可以做

<deploy.scp xargs -l sh -c 'eval echo $0 $*' | lftp

或者,为了节省一些打字,可以创建一个别名,比如说

alias xv=$'xargs -l sh -c \'eval echo $0 $*\''

然后

xv <deploy.scp | lftp

0
投票

虽然它需要额外的工具

envsubst
,但这通过流程替换

对我有用
lftp -f <(envsubst < lftp_commands.txt)

假设我已经设置了这些环境变量并且

lftp_commands.txt
包含类似的内容

open --user $FTP_USER --password $FTP_PASSWORD $FTP_HOST
put example.txt
exit

© www.soinside.com 2019 - 2024. All rights reserved.