Я хотел бы написать функцию, которую я могу вызвать из скрипта с множеством различных переменных. По некоторым причинам у меня много проблем с этим. Примеры, которые я читал, всегда используют глобальную переменную, но это не сделает мой код более читабельным, насколько я могу видеть.
Пример использования по назначению:
#!/bin/bash
#myscript.sh
var1=$1
var2=$2
var3=$3
var4=$4
add(){
result=$para1 + $para2
}
add $var1 $var2
add $var3 $var4
# end of the script
./myscript.sh 1 2 3 4
Я попытался использовать $1
и такой в функции, но потом он берет глобальный, из которого был вызван весь скрипт. В основном то , что я ищу что - то вроде $1
, $2
и так далее , но в локальном контексте функции. Как вы знаете, функции работают на любом правильном языке.
echo $1
иecho $2
в этом.result =
наresult=$(($1 + $2))
и добавьтеecho $result
после него, и он будет работать правильно, $ 1 и $ 2 - ваши аргументы функций.Ответы:
Чтобы вызвать функцию с аргументами:
Функция ссылается на переданные аргументы по их позиции (не по имени), то есть $ 1, $ 2 и т. Д. $ 0 - это имя самого скрипта.
Пример:
Выход
источник
В основном скрипте $ 1, $ 2 представляет переменные, как вы уже знаете. В индексах или функциях $ 1 и $ 2 будут представлять параметры, передаваемые в функции, как внутренние (локальные) переменные для этих индексов.
источник