GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So beziehen Sie eine bestimmte Variable

Es ist möglich, Variablen mithilfe von Funktionen zu erfassen. Beispiel:

## Provider.sh
# Global vars
declare -A map

# Wrap the rest of Provider.sh in a function

provider() {

    # Local vars only available in this function
    declare a=hello b=world c d


    # Global vars are available
    map[hello]=world

}

provider "[email protected]"    # Execute function, pass on any positional parameters

# Remove function
unset -f provider
$ cat Consumer.sh
. ./Provider.sh
echo "${map[hello]}"
echo "$a"
$ bash -x Consumer.sh
+ . ./Provider.sh
++ declare -A map
++ provider
++ declare a=hello b=world c d
++ map[hello]=world
++ unset -f provider
+ echo world
world
+ echo ''


Sie können eine Funktion verwenden und die Variablen lokal oder global machen:

#!/bin/bash

foo() {
  declare -gA MAP # make global
  local A=hello # make local
  local B=world # make local
  MAP[hello]=world
}

foo

Dann:

#!/bin/bash
source ./Provider.sh
[[ -z "$A" ]] && echo "Variable A not defined"
[[ -z "$B" ]] && echo "Variable B not defined"
echo ${MAP[hello]}

Ausgabe:

Variable A not defined
Variable B not defined
world

Linux
  1. Wie führen wir einen in einer Variablen gespeicherten Befehl aus?

  2. Wie wird eine indirekte Variablenauswertung durchgeführt?

  3. Wie überprüft man, ob eine Variable in einer „if“-Anweisung vorhanden ist?

  4. Wie verzögere ich die Variablenerweiterung?

  5. So setzen Sie die $Path-Variable in Linux

So installieren Sie Maven unter Windows

So installieren Sie Software von der Quelle in Linux

So setzen Sie die Umgebungsvariable in Bash

So pingen Sie eine bestimmte Portnummer an

Was ist BusyBox unter Linux? Wie benutzt man es?

So fügen Sie eine Datenquelle zu Redash hinzu