Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: n3mo в Mar 14, 2010, 04:08



Титла: Проблем с един малък скрипт..
Публикувано от: n3mo в Mar 14, 2010, 04:08
Здравейте,
Реших да си напиша малък скрипт за качване файл на 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

Някой може ли да хвърли малко светлина в тъмната уличка, защото не мога да го разбера какво иска...


Титла: Re: Проблем с един малък скрипт..
Публикувано от: jet в Mar 14, 2010, 06:58
сложи затварящото ЕОТ да е в началото на реда


Титла: Re: Проблем с един малък скрипт..
Публикувано от: n3mo в Mar 14, 2010, 14:38
сложи затварящото ЕОТ да е в началото на реда
Благодаря ти ! Много!

А случайно да знаете как да пренасоча output-а към /dev/null, Понеже при EOT >> /dev/null , пак ми дава същата грешка ?


Титла: Re: Проблем с един малък скрипт..
Публикувано от: radoulov в Mar 14, 2010, 15:55
Код
GeSHi (Bash):
  1. ftp -n -v ftp.server.com << EOT > /dev/null


Титла: Re: Проблем с един малък скрипт..
Публикувано от: n3mo в Mar 14, 2010, 16:04
Отново благодаря, сега се опитвам да проверя дали операцията е успешна, дали това е правилния начин ?
Код:
ftp -n -v ftp.server.com << EOT > /dev/null || UPLOAD=false

Всъщност това не работи... защото самата команда винаги се изпълнява независимо дали успява да се свърже или не ... или поне частта след || не се изпълнява в този ред... Други предложения ? 


Титла: Re: Проблем с един малък скрипт..
Публикувано от: radoulov в 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 ($2) за повече информация.


Титла: Re: Проблем с един малък скрипт..
Публикувано от: n3mo в Mar 14, 2010, 16:36

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

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