функция Shell
Linux оболочки может быть определяемые пользователем функции, то вы можете легко позвонить в сценариях оболочки.
Определение Формат функции оболочки выглядит следующим образом:
[ function ] funname [()] { action; [return int;] }
Объяснение:
- 1, может принимать функцию удовольствие () определяется как прямая забава () определяется, без каких-либо параметров.
- 2, возвращаемые параметры могут быть отображены плюс: возвращение возврата, если нет, то результат будет последней команды запуска, в качестве возвращаемого значения. а затем возвращаемого значения п (0-255
Следующий пример определяет функцию и вызов:
#!/bin/bash # author:本教程 # url:www.w3big.com demoFun(){ echo "这是我的第一个 shell 函数!" } echo "-----函数开始执行-----" demoFun echo "-----函数执行完毕-----"
Выход:
-----函数开始执行----- 这是我的第一个 shell 函数! -----函数执行完毕-----
Следующее определение функции с обратным утверждением:
#!/bin/bash # author:本教程 # url:www.w3big.com funWithReturn(){ echo "这个函数会对输入的两个数字进行相加运算..." echo "输入第一个数字: " read aNum echo "输入第二个数字: " read anotherNum echo "两个数字分别为 $aNum 和 $anotherNum !" return $(($aNum+$anotherNum)) } funWithReturn echo "输入的两个数字之和为 $? !"
Выход подобное следующему:
这个函数会对输入的两个数字进行相加运算... 输入第一个数字: 1 输入第二个数字: 2 两个数字分别为 1 和 2 ! 输入的两个数字之和为 3 !
Функция Возвращаемое значение после вызова этой функции через $? Получается.
Примечание: Все функции должны быть определены перед использованием. Это означает, что функция не должна быть помещена в начале сценария, пока интерпретатор оболочки, когда он был впервые обнаружен, он может быть использован. Вызов функции, используя только его имя функции.
Аргументы функции
В Shell, вы можете передать параметры, к которым функция вызывается. В теле функции внутри, чтобы получить значение параметра в виде $ п, например, $ 1 для первого аргумента, $ 2 для второго параметра ...
Пример функции с параметрами:
#!/bin/bash # author:本教程 # url:www.w3big.com funWithParam(){ echo "第一个参数为 $1 !" echo "第二个参数为 $2 !" echo "第十个参数为 $10 !" echo "第十个参数为 ${10} !" echo "第十一个参数为 ${11} !" echo "参数总数有 $# 个!" echo "作为一个字符串输出所有参数 $* !" } funWithParam 1 2 3 4 5 6 7 8 9 34 73
Выход:
第一个参数为 1 ! 第二个参数为 2 ! 第十个参数为 10 ! 第十个参数为 34 ! 第十一个参数为 73 ! 参数总数有 11 个! 作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 !
Обратите внимание, что $ 10 не может получить десятую часть параметров, получить десятые параметры нужно $ {10}. При п> = 10, вам нужно использовать $ {п}, чтобы получить параметры.
Кроме того, существует несколько параметров для обработки специальных символов:
обработка параметров | объяснение |
---|---|
$ # | Число параметров, передаваемых в скрипт |
$ * | В пределах одной строки отображаются все параметры, переданные сценарию |
$$ | Текущий процесс идентификационный номер сценария работает |
$! | И, наконец, процесс, выполняемый в фоновом режиме идентификационного номера |
$ @ | * $ С такой же, но когда вы используете кавычки, и возвращает значение каждого параметра в кавычках. |
$ - | Shell отображает текущий параметр, чтобы использовать ту же команду функции набора. |
$? | Отображает статус выхода последней команды. 0 указывает на отсутствие ошибок, а также любое другое значение указывает на ошибку. |