Linux ftp命令内部循环
我想知道在某些情况下是否可以添加0-10个文件,假设我有一个带有Linux ftp命令内部循环,linux,image,bash,loops,Linux,Image,Bash,Loops,我想知道在某些情况下是否可以添加0-10个文件,假设我有一个带有video1.jpg的shell脚本,并希望它升级到video10.jpg并重新开始。脚本运行并给出video1.jpg,我希望它不断增加+1到10 #!/bin/bash ftp -n -v $HOST << EOT ascii user $USER $PASSWD prompt get video1.jpg bye EOT #/bin/bash ftp-n-v$HOST你可以试试这个 #!/bin/bash for
video1.jpg
的shell脚本,并希望它升级到video10.jpg
并重新开始。脚本运行并给出video1.jpg
,我希望它不断增加+1到10
#!/bin/bash
ftp -n -v $HOST << EOT
ascii
user $USER $PASSWD
prompt
get video1.jpg
bye
EOT
#/bin/bash
ftp-n-v$HOST你可以试试这个
#!/bin/bash
for((i=1;i<=10;i++))
do
ftp -n -v $HOST << EOT
ascii
user $USER $PASSWD
prompt
get video${i}.jpg
bye
EOT
done
#/bin/bash
对于((i=1;i我现在没有机会尝试,但这应该可以:
#!/bin/bash
for i in {1..10}; do
ftp -n -v $HOST << EOT
ascii
user $USER $PASSWD
prompt
get video$i.jpg
bye
EOT
done
!/bin/bash
因为{1..10}中的i;do
ftp-n-v$HOST正如其他答案已经指出的,传递给ftp
程序的here文档只是文本,没有循环功能。但是,生成十个ftp会话来获取十个文件是浪费的——您可以生成一个here文档,指示ftp
在一个sess中获取所有文件离子
#!/bin/bash
(
printf '%s\n' ascii "user $USER $PASSWD" prompt
printf 'get video%i.jpg' {1..10}
printf 'bye\n'
) | ftp -n -v "$HOST"
但是,没有适当的错误处理工具。真正的解决方案是使用一个可正确编写脚本的ftp
程序(lftp
,ncftp
,您有什么)或编写自己的简单客户端。下面是一种在循环中添加ftp的方法
#!/bin/bash
HOST='hostname'
USER='username'
PASSWD='password'
# Local directory where the files are stored.
cd "/local/directory/from where to upload files/"
# To get all the files added today only.
TODAYSFILES=`find -maxdepth 1 -type f -mtime -1`
# remote server directory to upload backup
REMOTEDIR="/directory on remote ftp computer/"
for FILENAME in ${TODAYSFILES[@]}; do
ftp -n -v $HOST << EOT
ascii
user $USER $PASSWD
prompt
cd $REMOTEDIR
put $FILENAME
bye
EOT
done
!/bin/bash
主机名
USER='username'
PASSWD='password'
#存储文件的本地目录。
cd“/本地/目录/从何处上载文件/”
#仅获取今天添加的所有文件。
TODAYSFILES=`find-maxdepth 1-type f-mtime-1`
#要上载备份的远程服务器目录
REMOTEDIR=“/远程ftp计算机上的目录/”
对于${TODAYSFILES[@]};中的文件名
ftp-n-v$HOST它确实生成了video1.jpg和video2.jpg,但在那之后停止了#!/bin/bash HOST='xxxxxxx'USER='xxxxxx'PASSWD='xxxxxx'cd/var/www/armando.se/img ftp-n-v$HOST在脚本第#!/bin/bash行下放置set-x。您将在终端上获得输出。请共享该日志。