Передача параметрів у Bash-функцію
Я намагаюся шукати, як передати параметри в Bash-функції, але завжди вискакує, як передати параметр з командного рядка.
Я хотів би передати параметри всередині свого скрипта. Я спробував:
myBackupFunction("..", "...", "xx")
function myBackupFunction($directory, $options, $rootPassword) {
...
}
Але синтаксис не правильний, як передати параметр в мою функцію?
893
3
Існує два типових способи оголошення функції. Я віддаю перевагу другому підходу.
або
Для виклику функції з аргументами:
Функція звертається до переданих аргументів за їх позицією (а не за іменами), тобто $1, $2 і так далі. $0 - ім'я самого скрипта.
Приклад:
Також потрібно викликати функцію після її оголошення.
Вихід:
;
Посилання: Advanced Bash-Scripting Guide.
Знання мов програмування високого рівня (C/C++/Java/PHP/Python/Perl...) може підказати неспеціалісту, що функції bash повинні працювати так само, як вони працюють в цих мовах. Натомість функції bash працюють як команди командного інтерпретатора і очікують, що їм будуть передані аргументи так само, як можна було б передати опцію команді командного інтерпретатора (ls -l). По суті, аргументи функції в bash розглядаються як позиційні параметри* (
$1, $2..$9, ${10}, ${11}
і так далі). Це не дивно, враховуючи те, як працюєgetopts
. Для виклику функції в bash дужки не потрібні.(Примітка: Я зараз працюю над Open Solaris).
Пропустіть батьківські імена та коми:
і функція повинна мати такий вигляд: