Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Проблема с загрузкой функций  (Прочитано 807 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн demonow

  • Автор темы
  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
Проблема с загрузкой функций
« : 04 Ноября 2012, 22:40:29 »
#! /bin/sh
testfunc()
{
echo "this is test function!"
}
Загружая данный сценарий из терминала функция почему-то не записывается в интерпретатор.
При попытке ее вызова пишет:"command not found".В чем проблема??


Xanych

  • Гость
Re: Проблема с загрузкой функций
« Ответ #1 : 04 Ноября 2012, 23:14:12 »
  Вопрос 1:
Цитировать
Загружая данный сценарий из терминала функция почему-то не записывается в интерпретатор.
Вы где-то в сценарии вызываете эту функцию? С чего вы решили,что интерпретатор не увидел функцию?
 Вопрос 2:
 
Цитировать
При попытке ее вызова пишет:"command not found".В чем проблема??
Как и где вы ее вызываете?

Оффлайн demonow

  • Автор темы
  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
Re: Проблема с загрузкой функций
« Ответ #2 : 04 Ноября 2012, 23:30:38 »
Вызываю функцию не в сцинарии, а в терминале.
То есть в терминале пишу functest
После того, как из терминала выполнил данный сценарий проверяю командой set записалась ли функция.

Оффлайн DOOMer

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Проблема с загрузкой функций
« Ответ #3 : 04 Ноября 2012, 23:42:21 »
То есть в терминале пишу functest
После того, как из терминала выполнил данный сценарий проверяю командой set записалась ли функция.
А кто вам сказал что функция из shell-скрипта будет доступна в виде обычный команды в терминале?
Функцию вызывать надо в самом скрипте, она создается для выполнения в теле скрипта во время его работы - а не вне его.

Оффлайн demonow

  • Автор темы
  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
Re: Проблема с загрузкой функций
« Ответ #4 : 04 Ноября 2012, 23:48:11 »
Хм.. интересно, а в книге RUS - Tansley - Linux and UNIX Shell Programming говорится:"Как только файл(имеется ввиду файл с определением функции) будет загружен интерпретатором shell появляется возможность вызова функции из командной строки либо из сценария"

Xanych

  • Гость
Re: Проблема с загрузкой функций
« Ответ #5 : 04 Ноября 2012, 23:50:18 »
Вам уже ответил DOOMer, но я добавлю.
  Все что вы объявляете в скрипте, будь то функцией или переменной, доступно только во время выполнения скрипта. Как только скрипт завершился, все объявленное исчезает. Поэтому интерпретатор пытается найти программу с именем testfunc и не находит таковую.

Оффлайн DOOMer

  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Проблема с загрузкой функций
« Ответ #6 : 04 Ноября 2012, 23:57:17 »
Как только файл(имеется ввиду файл с определением функции) будет загружен интерпретатором shell появляется возможность вызова функции из командной строки либо из сценария
Интересная цитата... книги этой под рукой нет, поэтому сложно судить что там имелось в виду.Возможно что перевод несколько крив, отсюда и не очень правильное понимание.

Оффлайн demonow

  • Автор темы
  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
Re: Проблема с загрузкой функций
« Ответ #7 : 05 Ноября 2012, 00:00:26 »
Во всяком случае спасибо.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Проблема с загрузкой функций
« Ответ #8 : 05 Ноября 2012, 00:06:27 »
"Как только файл(имеется ввиду файл с определением функции) будет загружен интерпретатором shell появляется возможность вызова функции из командной строки либо из сценария"
Это если скрипт с функциями подгружать командой source, либо затолкать в ~/.bashrc.

Оффлайн demonow

  • Автор темы
  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
Re: Проблема с загрузкой функций
« Ответ #9 : 05 Ноября 2012, 00:08:45 »
Дак в итоге как тогда подключать файл с функциями в сценарий.В shell есть аналог include или require как в php к примеру??

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Проблема с загрузкой функций
« Ответ #10 : 05 Ноября 2012, 00:09:47 »
Дак в итоге как тогда подключать файл с функциями в сценарий.В shell есть аналог include или require как в php к примеру??
скрипт с функциями подгружать командой source, либо затолкать в ~/.bashrc

Оффлайн demonow

  • Автор темы
  • Любитель
  • *
  • Сообщений: 52
    • Просмотр профиля
Re: Проблема с загрузкой функций
« Ответ #11 : 05 Ноября 2012, 00:11:25 »
Спасибо.

 

Страница сгенерирована за 0.027 секунд. Запросов: 25.