Пожалуйста, просветите меня. Что означает следующий фрагмент сценария оболочки?
FNAME=Grapes.txt
touch Apple.txt
ls Banana.txt | while read FNAME
do
/somePath/ftp_autojobs.sh someFolder/LG $FNAME Apple.txt
done
РЕДАКТИРОВАТЬ: ftp_autojobs.sh передает файлы на сервер.
Содержимое ftp_autojobs.sh:
SO=`tput smso`
SE=`tput rmso`
RETURN="$SO RETURN $SE"
TEMP_FN=`mktemp -c -d . -p ftp`
TEMP_LOG=`mktemp -c -d . -p log`
echo open some.server.com>>$TEMP_FN
echo user user pass>>$TEMP_FN
echo cd \"$1\">>$TEMP_FN
echo binary>>$TEMP_FN
shift
until [ $# -eq 0 ]
do
echo mput \"$1\">>$TEMP_FN
shift
done
echo bye>>$TEMP_FN
ftp -vin < $TEMP_FN > $TEMP_LOG
FILE_COUNT=`grep "226 Transfer complete" $TEMP_LOG|eval wc -l|cut -d ' ' -f 1`
if [ $FILE_COUNT -eq 0 ]
then
rm -f ftp_commands.txt 2>/dev/null
rm -f ftp.log 2>/dev/null
mv $TEMP_FN ftp_commands.txt
mv $TEMP_LOG ftp.log
cat ftp.log
banner "WARNING" "FTP FAILED"
else
rm -f $TEMP_FN
rm -f $TEMP_LOG
echo $FILE_COUNT Files sucessfully transferred.
fi
Большое спасибо.
В простом формате ....
УСТАНОВИТЬ FNAME в Grapes.txt
создает Apple.txt
затем делает ftp_autojobs.sh someFolder / LG Grapes.txt Apple.txt
Готово
Не более того ....
Мое слепое предположение - это резервное копирование некоторых файлов на FTP-сервер. Есть некоторые «волшебные» вещи, которые мы не можем знать об этом сценарии. Похоже, что файл "Apples.txt" это какой-то лог.
Самая большая загадка - это содержание и параметры ftp_autojob.sh
сценарий. Может быть, вы могли бы добавить некоторую информацию к своему вопросу.
В стороне, я не думаю, что это написано так хорошо, как могло бы быть, см. этот почему. Вместо этого рассмотрите следующее:
while read FNAME
do
/somePath/ftp_autojobs.sh someFolder/LG "$FNAME" Apple.txt
done < Banana.txt