У меня есть функция, которую я хочу ссылаться и использовать в разных сценариях. Есть какой-либо способ сделать это? Я не хочу переписывать одну и ту же функцию для разных скриптов. Благодарю.Может ли функция bash использоваться в разных сценариях?
ответ
Конечно - в сценарий, в котором вы хотите использовать эту функцию, вы можете написать команду как
source function.sh
что эквивалентно включая содержимое function.sh
в файле в точке, где команда запустить. Обратите внимание: function.sh
должен быть в одном из каталогов в $PATH
; Если это не так, вам нужно указать абсолютный путь.
Да, вы можете локализовать все свои функции в общем файле (или файлах). Это именно то, что я делаю со всеми моими служебными функциями. У меня есть один utility.shinc
в моем домашнем каталоге, который используется всеми моими программами с:
. $HOME/utility.shinc
, который выполняет скрипт в контексте текущей оболочки. Это важно - если вы просто запустите скрипт include, он будет запущен в подоболочке, и любые изменения не будут распространяться на текущую оболочку.
Вы можете сделать то же самое для групп скриптов. Если это часть «продукта», я бы поставил все сценарии и любые включенные скрипты в один каталог оболочки, чтобы все было локализовано.
Да .. вы можете! Добавить source function_name в ваш скрипт. Я предпочитаю создавать переменную eg.VAR = $ (funtion_name), если вы добавите исходное имя_функции после #!/Bin/bash, тогда ваш скрипт сначала выполнит импортированную функциональную задачу, а затем вашу текущую задачу сценария, поэтому лучше создать переменную и использовать где угодно в скрипте. благодарю вас .. Надеемся на его работу для вас :)
Почему вы копируете ответы, которые были опубликованы ... 8 лет назад? –
Для лучшего понимания. Я написал более кратко, чем предыдущий. –
- 1. пробелы в сценариях bash
- 2. «или» в сценариях bash
- 3. Как использовать двух разных пользователей в сценариях bash
- 4. Может ли CRC32 использоваться как функция хеширования?
- 5. Временные переменные в сценариях Bash
- 6. Perl set и получить env в разных сценариях bash
- 7. та же переменная в разных сценариях в bash
- 8. Может ли $ использоваться в качестве сцепленного символа в BASH?
- 9. Управление процессом в сценариях bash
- 10. Нужна помощь в сценариях bash
- 11. Несколько терминалов в сценариях bash
- 12. Аргумент группировки в сценариях bash
- 13. Может ли JWT использоваться в разных приложениях AngularJS?
- 14. Может ли функция MONTH() использоваться в формуле SUMIFS в Excel?
- 15. Может ли bash использоваться для связи напрямую с оборудованием?
- 16. Может ли ConnectionKit использоваться?
- 17. Может ли метод использоваться как функция array_map в PHP 5.2?
- 18. CPLEX: Может ли функция ceil() использоваться в ограничении?
- 19. Может ли функция Matlab использоваться в ядре CUDA?
- 20. Как сохранить структуру папок в сценариях bash?
- 21. Может ли $ использоваться в $ match?
- 22. Может ли SharedPreferences использоваться для разных приложений для Android?
- 23. Что такое знак hash/number в типе .NET/PowerShell и может ли он использоваться в сценариях?
- 24. Как инструкция x86 pause работает в spinlock * и *, может ли она использоваться в других сценариях?
- 25. Написание Git-крючков в сценариях python/bash
- 26. Может ли функция-член использоваться в любом месте, где функция free может использовать std :: function?
- 27. Ресурс JAXRS может использоваться для разных запросов?
- 28. Проверка индексов массива в сценариях оболочки bash
- 29. Заменить вывод в цикле в сценариях bash
- 30. jQuery - функция, которая может использоваться аналогично сеансам?
Функция.sh может быть в любом месте вашего PATH. Если bash находится в режиме posix, он не будет отображаться в текущем каталоге. Все это объясняется на странице руководства. – camh
Правда, я перепутал это с другими вещами. –
Скажем, 'function.sh' имеет в нем некоторый код. Будет ли 'source function.sh' также выполнять код? – user1527227