Ich möchte eine Funktion schreiben, die ich aus einem Skript mit vielen verschiedenen Variablen aufrufen kann. Aus einigen Gründen habe ich große Probleme damit. Beispiele, die ich gelesen habe, verwenden immer nur eine globale Variable, aber das würde meinen Code nicht so gut lesbar machen, wie ich es sehe.
Verwendungszweck Beispiel:
#!/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
Ich habe versucht, $1
und so in der Funktion zu verwenden, aber dann wird nur die globale verwendet, von der aus das gesamte Skript aufgerufen wurde. Grundsätzlich suche ich etwas wie $1
, $2
und so weiter, aber im lokalen Kontext einer Funktion. Wie Sie wissen, funktionieren Funktionen in jeder geeigneten Sprache.
echo $1
undecho $2
drin.result =
mitresult=$(($1 + $2))
und fügenecho $result
Sie es danach hinzu, und es funktioniert ordnungsgemäß. $ 1 und $ 2 sind Ihre Funktionsargumente.Antworten:
So rufen Sie eine Funktion mit Argumenten auf:
Die Funktion verweist auf übergebene Argumente anhand ihrer Position (nicht anhand ihres Namens), dh $ 1, $ 2 usw. $ 0 ist der Name des Skripts.
Beispiel:
Ausgabe
quelle
Im Hauptskript repräsentiert $ 1, $ 2, die Variablen, wie Sie bereits wissen. In den Indizes oder Funktionen stellen $ 1 und $ 2 die an die Funktionen übergebenen Parameter als interne (lokale) Variablen für diese Indizes dar.
quelle