Подтвердить что ты не робот

Можно ли использовать функцию bash в разных сценариях?

У меня есть функция, которую я хочу ссылаться и использовать в разных сценариях. Есть какой-либо способ сделать это? Я не хочу переписывать одну и ту же функцию для разных скриптов. Спасибо.

4b9b3361

Ответ 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. благодарю вас.. Надеемся на его работу для вас:)