Bash Script Here Documents FTP

时间:2014-03-09 06:11:14

标签: linux bash shell ftp

我最近在使用bash脚本自动执行ftp进程时发现了“here”语句。

此处参考文件:http://tldp.org/LDP/abs/html/here-docs.html

ftp进程在bash脚本中需要相当长的时间,我想专门在后台运行它,并在ftp进程之后继续使用bash脚本的下一行。我如何为“这里”文件做这个?

FTP代码段:

    USER="test"
    PASSWD="test"
    ftp -n $HOST <<END_SCRIPT
    quote USER $USER
    quote PASS $PASSWD
    quit
    END_SCRIPT 

例如:

我希望能够做到这一点:

run ftp snippet &
run other shell commands

但我不太确定将&

放在哪里

到目前为止我已尝试过:

尝试1 :(我认为这在语法上是不正确的,不起作用):

function do_ftp() {
    ftp -n $HOST <<END_SCRIPT
    quote USER $USER
    quote PASS $PASSWD
    quit
    END_SCRIPT
}

do_ftp &
//additional commands

尝试2:

USER="test"
PASSWD="test"
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
quit
END_SCRIPT &

尝试3:

USER="test"
PASSWD="test"
ftp -n $HOST & <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
quit
END_SCRIPT

1 个答案:

答案 0 :(得分:1)

我还没有在ftp上测试它但是

我知道当你想把变量放在HEREDOC上时你应该做别的事情

例如,我尝试了以下ssh命令:

while read pass port user ip fileinput fileoutput filetemp; do
     sshpass -p$pass ssh -o 'StrictHostKeyChecking no' -p $port $user@$ip fileinput=$fileinput fileoutput=$fileoutput filetemp=$filetemp 'bash -s'<<ENDSSH1
     python /path/to/f.py $fileinput $fileoutput $filetemp
     ENDSSH1
done  <<____HERE1
     PASS    PORT    USER    IP    FILE-INPUT    FILE-OUTPUT    FILE-TEMP
____HERE1

你可能需要这样的东西......