Автор Тема: Проблем с един малък скрипт..  (Прочетена 1338 пъти)

n3mo

  • Участници
  • ***
  • Публикации: 11
  • Distribution: Debian/Ubuntu
  • Window Manager: Fvwm
    • Профил
    • WWW
Здравейте,
Реших да си напиша малък скрипт за качване файл на ftp сървър но имам проблем ...
Код
GeSHi (Bash):
  1. #!/bin/bash
  2. file=${1:-"NONE"}
  3. if [ "$file" == "NONE" ]; then
  4.    echo -e " \n No selected file"
  5.    exit 1
  6. else
  7.        ftp -n -v ftp.server.com << EOT
  8.        ascii
  9.        user username password
  10.        prompt
  11.        cd www/folder
  12.        put $file
  13.        bye
  14.        EOT
  15.        echo "\n\n Done!"
  16. fi
  17. exit 0
  18.  
Първо опитах с фукнция да е , но всъщност е все тая. Дава ми някакъв странен проблем с тези EOT...

Код:
 warning: here-document at line 19 delimited by end-of-file (wanted `EOT')
 syntax error: unexpected end of file

Някой може ли да хвърли малко светлина в тъмната уличка, защото не мога да го разбера какво иска...
« Последна редакция: Mar 14, 2010, 10:19 от VladSun »
Активен

I don't wanna be just a memory.

jet

  • Напреднали
  • *****
  • Публикации: 3469
  • Distribution: debian
  • Window Manager: kde
    • Профил
Re: Проблем с един малък скрипт..
« Отговор #1 -: Mar 14, 2010, 06:58 »
сложи затварящото ЕОТ да е в началото на реда
Активен

..⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁
  ⢿⡄⠘⠷⠚⠋
  ⠈⠳⣄⠀⠀⠀⠀  Debian, the universal operating system.

n3mo

  • Участници
  • ***
  • Публикации: 11
  • Distribution: Debian/Ubuntu
  • Window Manager: Fvwm
    • Профил
    • WWW
Re: Проблем с един малък скрипт..
« Отговор #2 -: Mar 14, 2010, 14:38 »
сложи затварящото ЕОТ да е в началото на реда
Благодаря ти ! Много!

А случайно да знаете как да пренасоча output-а към /dev/null, Понеже при EOT >> /dev/null , пак ми дава същата грешка ?
« Последна редакция: Mar 14, 2010, 14:46 от n3mo »
Активен

I don't wanna be just a memory.

radoulov

  • Напреднали
  • *****
  • Публикации: 116
    • Профил
Re: Проблем с един малък скрипт..
« Отговор #3 -: Mar 14, 2010, 15:55 »
Код
GeSHi (Bash):
  1. ftp -n -v ftp.server.com << EOT > /dev/null
Активен

n3mo

  • Участници
  • ***
  • Публикации: 11
  • Distribution: Debian/Ubuntu
  • Window Manager: Fvwm
    • Профил
    • WWW
Re: Проблем с един малък скрипт..
« Отговор #4 -: Mar 14, 2010, 16:04 »
Отново благодаря, сега се опитвам да проверя дали операцията е успешна, дали това е правилния начин ?
Код:
ftp -n -v ftp.server.com << EOT > /dev/null || UPLOAD=false

Всъщност това не работи... защото самата команда винаги се изпълнява независимо дали успява да се свърже или не ... или поне частта след || не се изпълнява в този ред... Други предложения ? 
« Последна редакция: Mar 14, 2010, 16:18 от n3mo »
Активен

I don't wanna be just a memory.

radoulov

  • Напреднали
  • *****
  • Публикации: 116
    • Профил
Re: Проблем с един малък скрипт..
« Отговор #5 -: Mar 14, 2010, 16:23 »
Не. С basic ftp client и само shell scripting не е много надеждно,
но можеш да опиташ нещо от този род:



Код
GeSHi (Bash):
  1. _ftp_error_log="ftp_error.log"
  2.  
  3. ftp -n -v ftp.server.com << EOT >/dev/null 2> "$_ftp_error_log"
  4. ascii
  5. user username password
  6. prompt
  7. cd www/folder
  8. put "$file"
  9. bye
  10. EOT
  11.  
  12. [ -s "$_ftp_error_log" ] && UPLOAD=false

Виж c.u.s. FAQ за повече информация.
« Последна редакция: Mar 14, 2010, 16:27 от radoulov »
Активен

n3mo

  • Участници
  • ***
  • Публикации: 11
  • Distribution: Debian/Ubuntu
  • Window Manager: Fvwm
    • Профил
    • WWW
Re: Проблем с един малък скрипт..
« Отговор #6 -: Mar 14, 2010, 16:36 »

Виж c.u.s. FAQ за повече информация.

Благодаря ти за линка, не успях да намеря нещо полезно в интернет по темата, но това ще помогне. Всичко добро!
Активен

I don't wanna be just a memory.