Eu gostaria de escrever uma função que eu possa chamar de um script com muitas variáveis diferentes. Por alguns motivos, estou tendo muitos problemas para fazer isso. Os exemplos que eu li sempre usam apenas uma variável global, mas isso não tornaria meu código muito mais legível, tanto quanto eu posso ver.
Exemplo de uso pretendido:
#!/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
Eu tentei usar $1
e tal na função, mas, em seguida, basta usar a global da qual o script inteiro foi chamado. Basicamente, o que estou procurando é algo parecido $1
, $2
e assim por diante, mas no contexto local de uma função. Como você sabe, as funções funcionam em qualquer linguagem adequada.
echo $1
eecho $2
nele.result =
porresult=$(($1 + $2))
e adicioneecho $result
depois e ele funciona corretamente, $ 1 e $ 2 são os argumentos das suas funções.Respostas:
Para chamar uma função com argumentos:
A função refere-se a argumentos passados por sua posição (não pelo nome), ou seja, $ 1, $ 2 e assim por diante. $ 0 é o nome do próprio script.
Exemplo:
Resultado
fonte
No script principal, $ 1, $ 2, está representando as variáveis como você já conhece. Nos subscritos ou funções, $ 1 e $ 2 representarão os parâmetros passados para as funções como variáveis internas (locais) para esses subscritos.
fonte