Здравия всем....
:)Есть скрипт:
_______________________________________
#!/bin/shHOST='127.0.0.1'
USER='root'
PASSWD='toor'ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd $DEST
dir
quit
END_SCRIPT
_________________________________________
Надо получить Error code. Тоесть если задача выполнена зделать что-то, а если нет напечатать что не получилось. Пробовал так:
_________________________________________
FTP_ER=$?
if [ $FTP_ER -ne 0 ]
then
echo "Some Error"
else
echo "Complited succsessfully"
fi
__________________________________________
Так не работает.Спасибо за помощ.
А используемый вами ftp вообще возвращает коды отличные от 0 и если да то в каких случаях? Обычно указывается в man. Причем неудачное завершение команды cd или dir врядли повлияет на код возврата.
>А используемый вами ftp вообще возвращает коды отличные от 0 и если
>да то в каких случаях? Обычно указывается в man. Причем неудачное
>завершение команды cd или dir врядли повлияет на код возврата.На самом деле кусок скрипта где производится соеденение по фтп воспринимается интерпритатором как одна комманда (обратите внимание на <<END_SCRIPT и END_SCRIPT).
ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd $DEST
dir
quit
END_SCRIPTМеня интересует код возврата от исполнения жсего набора комманд заклыученниь в "END_SCRIPT",
будь то невозможность соеденится с сервером или неправельный юзер/пасс.
А что касается возвращает ли комманда какой либо код, то насколько я знаю код возвращает любая комманда: 0 если удачно и больше 0 если неудачно.З.Ы. На самом деле я решил проблему при помощи Perl скрипта исползуя модуль Net:FTP, но все же проблема актуальна.
Я в курсе что-такое document here и как он работает :)
Если не сможет соединится с сервером или авторизоваться, то _возможно_ вернет не нулевой код возврата. Если же не выполнится cd или dir, то скорее всего код возврата будет 0. Но это лишь предположение основанное на поведении других утилит, в тех man ftp что я видел нет описания кодов возврата, возможно даже что всегда возвращается 0, так как команда по сути предназначена для интерактивной работы, а не для скриптов. Правильный подход к проблеме имеется в ncftp, который я использую и вам рекомендую.P.S. если уж знаешь perl, то зачем вообще возится с шеллом?
>[оверквотинг удален]
>Если не сможет соединится с сервером или авторизоваться, то _возможно_ вернет не
>нулевой код возврата. Если же не выполнится cd или dir, то
>скорее всего код возврата будет 0. Но это лишь предположение основанное
>на поведении других утилит, в тех man ftp что я видел
>нет описания кодов возврата, возможно даже что всегда возвращается 0, так
>как команда по сути предназначена для интерактивной работы, а не для
>скриптов. Правильный подход к проблеме имеется в ncftp, который я использую
>и вам рекомендую.
>
>P.S. если уж знаешь perl, то зачем вообще возится с шеллом?Что касается ncftp, на тупом сервере где это должно работат его нет, а то и я про него знаю и использую. Установить не могу, шеф не пускает, говорит ничего лишнего, поди обьясни....
А что касается знаний Perl, все тот же шеф, говорит Shell это часть системы, а перл это стороняя программа:). Проста тут было легче поскольку перл всетаки был установлен в системе:)
>А что касается знаний Perl, все тот же шеф, говорит Shell это часть системы, а перл это стороняя программаНу тогда нужно писать на чистом sh и не использовать gnu расширения различных утилит. Сервера, где нет bash и, например, tar/grep/curl имеет другой набор опций мне встречались, а вот серверов без базового perl еще ни одного не видел.