我想从ftp服务器处理目录列表。在一天结束时,我想删除ftp服务器上的旧文件,但我还没有。我在解释目录列表中的行时遇到问题。我是shell脚本的新手,所以请耐心等待。这可能是我犯下的一个非常基本的错误....
当我运行此脚本时,您会找到下面的代码段和打印输出。
#!/bin/bash
# LOCAL/FTP/SCP/MAIL PARAMETERS
SERVER="xxx.yyy.zzz" # IP of NAS, used for ftp
USERNAME="joe" # FTP username of Network disk used for ftp
PASSWORD="joe1234" # FTP password of Network disk used for ftp
DESTDIR="/opt/backup" # used for temorarily storage
DESTDIRNAS="/sdb1/domoticz_backup/A/" # Path to your NAS backup folder
DOMO_IP="192.168.0.243" # Domoticz IP
DOMO_PORT="8085" # Domoticz port # get directory listing from remote source
putdir=$DESTDIRNAS
ftp -n $SERVER > /tmp/dirlist <<END_SCRIPT
quote USER $USERNAME
quote PASS $PASSWORD
cd $putdir
ls -l
quit
END_SCRIPT
cat /tmp/dirlist | while read LINE; do
echo $LINE
awk '{print $9}' $(LINE)
done;
输出如下:
pi@raspberrypi:~ $ ./test.sh
-rwxrwxrwx 1 0 0 229632 Oct 09 07:27 domoticz_20171009092723.db.gz
./test.sh: line 23: LINE: command not found
domoticz_20171009105333.db.gz
domoticz_20171009111940.db.gz
domoticz_20171009113716.db.gz
domoticz_scripts_20171009105333.tar.gz
domoticz_scripts_20171009111940.tar.gz
domoticz_scripts_20171009113716.tar.gz
pi@raspberrypi:~ $
文件/ tmp / dirlist包含7行,类似于运行脚本时打印的第一行。但是,脚本无法解析第一行,但会引发错误。后续行工作正常,但它们不会由echo命令打印。我无法弄清楚为什么这不起作用....