У меня есть функция, которую я хочу ссылаться и использовать в разных сценариях. Есть какой-либо способ сделать это? Я не хочу переписывать одну и ту же функцию для разных скриптов. Спасибо.
Можно ли использовать функцию bash в разных сценариях?
Ответ 1
Конечно - в script, где вы хотите использовать эту функцию, вы можете написать команду, например
source function.sh
что эквивалентно включению содержимого function.sh
в файл в том месте, где выполняется команда. Обратите внимание, что function.sh
должен находиться в одном из каталогов в $PATH
; Если это не так, вам нужно указать абсолютный путь.
Ответ 2
Да, вы можете локализовать все свои функции в общем файле (или файлах). Это именно то, что я делаю со всеми моими служебными функциями. У меня есть один utility.shinc
в моем домашнем каталоге, который используется всеми моими программами:
. $HOME/utility.shinc
который выполняет script в контексте текущей оболочки. Это важно - если вы просто запустите include script, он будет запущен в подоболочке, и любые изменения не будут распространяться на текущую оболочку.
Вы можете сделать то же самое для групп скриптов. Если это часть "продукта", я бы поставил все сценарии и любые включенные скрипты в один каталог оболочки, чтобы все было локализовано.
Ответ 3
Да... ты можешь! Добавьте source_name в script. Я предпочитаю создавать переменную eg.VAR = $(funtion_name), если вы добавите исходное имя_функции после #!/Bin/bash, тогда ваш script сначала выполнит импортированную функциональную задачу, а затем вашу текущую задачу script, чтобы ее было лучше для создания переменной и использования в любом месте script. благодарю вас.. Надеемся на его работу для вас:)