我最近在使用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
答案 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
你可能需要这样的东西......