在ftp命令中循环

时间:2015-09-08 12:24:41

标签: 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

3 个答案:

答案 0 :(得分:0)

你可以试试这个

#!/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

答案 1 :(得分:0)

我现在没有机会尝试,但是应该这样做:

#!/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
编辑#2:我错了,我的回答几乎与Shravan Yadav相同,因为你无法在ftp交易中循环。你可以选择任何一个作为正确的答案,但你应该更喜欢他,因为他是第一个我猜:)

答案 2 :(得分:0)

这是在循环内添加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