2014-09-30 2 views
0

У меня возникают некоторые странные проблемы при запуске моего сценария оболочки. Сценарий оболочки в основном предназначен для отправки файла через FTP. Он принимает один параметр в качестве имени файла и отправляет файл по целевому FTP-пути.Файл не найден ошибок при выполнении сценария оболочки

Теперь, когда я запускаю сценарий оболочки с использованием Putty, он отправляет файл без каких-либо проблем. Но, когда я пытаюсь запустить сценарий оболочки с помощью какого-либо внешнего приложения, я получаю ошибки, указывающие, что указанный путь не найден. Я уже пробовал устанавливать путь внутри скрипта, а также проверял права доступа к файлу. Все выглядит хорошо. Пожалуйста, помогите мне с некоторыми подсказками и указателями.

Эти ошибки я получаю

  1. ошибка, когда я непосредственно передать имя файла. Myfile.csv: Файл или каталог в имени пути не существует.

  2. Ошибка при передаче полного пути к файлу. /serv/scripts/test/Myfile.csv: система не может найти указанный путь.

Ниже приведен сценарий оболочки.

ftp_put() 
{ 
    ftp -ni server_name << EOF 
    user anonymous anonymous 
    cd BHU 
    put $FTPFILE 
    quit 
    EOF 
} 
FTPFILE=$1 
ftp_put 
+0

От того, где вы работаете сценарий? если вы указываете только имя файла в качестве входного аргумента, тогда он будет искать файл, в котором находится ваш скрипт. если вы хотите найти его в фактическом месте, то укажите полный путь в качестве аргумента. –

+0

Привет, я пробовал в обоих направлениях. Я разместил файл и сценарий оболочки в том же месте. Но даже если я попробую прямое имя файла или полный путь и имя файла, оно не работает. Как было сказано, в обоих случаях указаны указанные ошибки. – Techidiot

ответ

0

Конец слово для здесь-документ должен быть только символы в этой строке. Не допускается перемещение ведущего или конечного пробела.

Единственным исключением является эта форма: <<-EOF, где перед конечным словом может предшествовать символы табели только.


Ваша функция должна закончиться, как этот

put $FTPFILE 
    quit 
EOF 
} 
+0

Привет, Гленн, спасибо за ваш вклад. Не могли бы вы рассказать об этом? Вы имеете в виду, я должен удалить << -EOF из моего кода? – Techidiot

+0

О, это был код с вкладками, добавленными мной. Исходный код не имеет вкладок или пробелов до или после. – Techidiot

Смежные вопросы