#linux #bash #function #shell
#linux #bash #функция #оболочка
Вопрос:
Я работаю над сценарием оболочки, и у меня есть несколько строк кода, которые дублируются (скажем, скопированы).
Я хочу, чтобы эти строки были в функции. Какой правильный синтаксис использовать?
И какие изменения я должен сделать, чтобы эти функции получали параметры?
Вот пример.
Мне нужно включить это:
amount=1
echo "The value is $amount"
amount=2
echo "The value is $amount"
Во что-то вроде этого:
function display_value($amount) {
echo "The value is $amount"
}
amount=1
display_value($amount)
amount=2
display_value($amount)
Это всего лишь пример, но я думаю, что он достаточно понятен.
Заранее спасибо.
Ответ №1:
function display_value() {
echo "The value is $1"
}
amount=1
display_value $amount
amount=2
display_value $amount
Ответ №2:
В сценарии оболочки функции могут принимать любое количество входных параметров. $ 1 означает 1-й входной параметр, $ 2 — второй и так далее. $# возвращает количество параметров, полученных функцией, а $@ возвращает все параметры по порядку и через пробелы.
Например:
#!/bin/sh
function a() {
echo $1
echo $2
echo $3
echo $#
echo $@
}
a "m" "j" "k"
вернет
m
j
k
3
m j k