x5 |
|
Темы:
1
Сообщения:
4
Участник с: 29 августа 2016
|
Добрый день. Дистрибутив: Linux version 4.7.1-1-ARCH Мои действия: y=archlinux.org.ru testf(){ echo ping $y; } Не могу выполнить «export -f testf». Результат: [x@arch][~]% export -f testf export: invalid option(s) По мануалу опция "-f" есть: ... -f — specify that arguments refer to ез "-f" functions ... -без опции "-f" не экспортирует функцию, только как переменную, т.е: [x@arch][~]% testf(){ echo «Hello»; } [x@arch][~]% export testf тогда, в окружении функция testf() станет переменной вида testf="", т.е. пустой. Вопрос: почему не могу экспортировать функцию? |
vasek |
|
Темы:
47
Сообщения:
11868
Участник с: 17 февраля 2013
|
Не понял, что интересует .... особо не вдавался ...... просто привожу маленький скриптик ... Запустим скрипт ….. $ ~/export.sh ….. и получим на выходе ….
Ошибки не исчезают с опытом - они просто умнеют
|
red |
|
Темы:
30
Сообщения:
1517
Участник с: 31 августа 2011
|
x5, вам для bash или zsh ? для bash всё работает, а для zsh можно сделать например так:
|
vasek |
|
Темы:
47
Сообщения:
11868
Участник с: 17 февраля 2013
|
export ...
Ошибки не исчезают с опытом - они просто умнеют
|
x5 |
|
Темы:
1
Сообщения:
4
Участник с: 29 августа 2016
|
vasek как работать с окружением я знаю, благодарю. Тут дела в другом. red У меня "zsh" точно, так работает, а почему только через eval срабатывает? Почему же не работает export -f function |
x5 |
|
Темы:
1
Сообщения:
4
Участник с: 29 августа 2016
|
vasek Там обучение работы с окружение, а проблемма в том, что функция не передается, а переменные передаются. |
indeviral |
|
Темы:
39
Сообщения:
3204
Участник с: 10 августа 2013
|
x5 Как бы как тот так: опция -f завязана с окружением и функция пишится в окружении в том же .bashrc А потом export -f firstТолько я не могу догнать что вы хотите получить?
Ошибки в тексте-неповторимый стиль автора©
|
red |
|
Темы:
30
Сообщения:
1517
Участник с: 31 августа 2011
|
x5ну не поддерживает zsh данную возможность, вместо этого в нём используют autoload -U, про использование в скриптах пару лет назад на этом форуме было даже обсуждение. |
vasek |
|
Темы:
47
Сообщения:
11868
Участник с: 17 февраля 2013
|
x5В bash все передается..............zsh не использую - ничего сказать не могу Создал 2 файла 1 - ./t - в котором определил функцию и делаю экспорт 2 - ./tt - выполняю функцию, которая не определена (точнее определена в 1-ом файле) и не определен аргумент ТЕСТ1. Запускаю 2-ой файл, естественно ничего нет ./tt ./tt: line 3: testf: команда не найдена 2. Запускаем 1-ый файл $ ./t 3. Запускаем 2-ой файл $ ./tt ping -c1 ya.ru Все передалось.....
Ошибки не исчезают с опытом - они просто умнеют
|
vasek |
|
Темы:
47
Сообщения:
11868
Участник с: 17 февраля 2013
|
А не проще без всякого export и другого bash , используя source ..... #!/bin/bash x=ya.ru testf() { echo "ping -c1 $x"; } source ./tt
Ошибки не исчезают с опытом - они просто умнеют
|