在 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
我已经为 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