gpt4 book ai didi

linux - 如何在 bash 脚本中启动后台 lftp session ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:19 24 4
gpt4 key购买 nike

我想将 FTP session 与文件描述符相关联,文件描述符将在整个脚本中引用它。包括周期。

例如像这样的东西。但它没有做到。

#!/bin/bash
#start of script
exec {ftpdescriptor}<> >(lftp -u $ftpuser,$ftppass $ftpip/$ftptd)

# code

(echo "ls" 1>&"$ftpdecriptor")> myanswer

# code

echo "bye" 1>&"$ftpdecriptor"
exec {ftpdescriptor}>&-
exit 0
# end of script

它有效,但答案总是输出到标准输出..

最佳答案

这样解决了问题

# start of script
ftpout=$(mktemp)
$timetowaitftp
exec {ftpin}> >(lftp -u $ftpuser,$ftppass $ftpip/$ftptd > $ftpout)
printf >&$ftpin "set net:timeout 10\n"
function ftpio {
:>$ftpout
printf >&$ftpin "$1\n"
i=0
while [ ! $2 ] && [ ! -s $ftpout ] && [ $i -lt 10 ]; do
# echo "waiting answer from ftp 1 sec.."
sleep 1;
let i=i+1
done
}

# code

ftpio "cd /modx" "nowait" # no output of cd command.
ftpio "ls"
cat $ftpout
sleep 15
ftpio "pwd"
cat $ftpout
#ftpio "put /var/www/vhosts/modx/backups/20160121.113318.tar.gz" "nowait" # 12Gb
#ftpio "put /var/www/vhosts/modx/backups/20150930.092338.tar.gz" "nowait" # 800mb

# /code

# end of script
printf 1>&"$ftpin" "bye\n"
exec {ftpin}>&-
rm $ftpout

ftpin - 命名描述符

ftpout - 带有最后一个 ftp 应答的临时文件

关于linux - 如何在 bash 脚本中启动后台 lftp session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37875796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com