簡體   English   中英

在shell中遍歷數組時出錯

[英]getting error while looping through array in shell

我已經編寫了一個腳本來從目錄中FTP傳輸一組文件,但是嘗試遍歷數組時遇到錯誤。

#!/usr/bin/ksh
HOST='xxx.xxx.xxx.xxx'   
USER='avio'    
PASSWD='jun'    
FILES[0]=D141203.T024413
FILES[1]=D150101.T012755
FILES[2]=D141203.T024418
echo 'no of files: ' ${#FILES[@]}
ftp -n -v $HOST << EOS
ascii
user $USER $PASSWD
for i in "${FILES[@]}" 
do 
get $i
done
bye
EOS

這是我的o / p:

no of files: 3
ftp.sh[10]: i: 0403-009 The specified number is not valid for this command.

for循環不作為bash命令執行; 而是將其作為字符串傳遞給ftp命令。 而是使用管道將命令的輸出提供給ftp

#!/usr/bin/ksh
HOST='xxx.xxx.xxx.xxx'   
USER='avio'    
PASSWD='jun'    
FILES[0]=D141203.T024413
FILES[1]=D150101.T012755
FILES[2]=D141203.T024418
echo 'no of files: ' ${#FILES[@]}
{ echo "ascii"
  echo "user $USER $PASSWD"
  for i in "${FILES[@]}";  do 
     echo "get $i"
  done
  echo "bye"
} | ftp -n -v $HOST

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM