Variablen-Scope und spezielle Variablen
In diesem letzten Schritt werden wir den Variablen-Scope in Bash untersuchen und mehr über spezielle Variablen erfahren, die Bash bereitstellt.
Verstehen des Variablen-Scope
In Bash können Variablen unterschiedliche Scopes haben, die bestimmen, wo sie zugänglich sind:
- Globale Variablen: Diese sind im gesamten Skript zugänglich.
- Lokale Variablen: Diese sind nur innerhalb einer bestimmten Funktion oder eines Blocks zugänglich.
Erstellen wir ein Skript, um den Variablen-Scope zu demonstrieren:
- Erstellen Sie eine neue Datei namens
variable_scope.sh:
#!/bin/bash
## Global variable
global_var="I am a global variable"
## Function that demonstrates variable scope
demo_scope() {
## Local variable
local local_var="I am a local variable"
## Access global variable
echo "Inside function: global_var = $global_var"
## Access local variable
echo "Inside function: local_var = $local_var"
## Modify global variable
global_var="Global variable modified"
}
## Main script
echo "Before function call: global_var = $global_var"
## This will fail because local_var doesn't exist yet
echo "Before function call: local_var = $local_var"
## Call the function
demo_scope
## After function call
echo "After function call: global_var = $global_var"
## This will fail because local_var is only accessible within the function
echo "After function call: local_var = $local_var"
- Speichern Sie die Datei und machen Sie sie ausführbar:
chmod +x variable_scope.sh
- Führen Sie das Skript aus:
./variable_scope.sh
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Before function call: global_var = I am a global variable
Before function call: local_var =
Inside function: global_var = I am a global variable
Inside function: local_var = I am a local variable
After function call: global_var = Global variable modified
After function call: local_var =
Beachten Sie, dass:
- Die globale Variable
global_var sowohl innerhalb als auch außerhalb der Funktion zugänglich ist.
- Die lokale Variable
local_var nur innerhalb der Funktion zugänglich ist.
- Änderungen an der globalen Variable nach dem Ende der Funktion bestehen bleiben.
Arbeiten mit speziellen Variablen
Bash stellt mehrere spezielle Variablen bereit, die spezifische Informationen enthalten. Untersuchen wir einige davon:
- Erstellen Sie eine neue Datei namens
special_variables.sh:
#!/bin/bash
## Special variables demonstration
echo "Script name: $0"
echo "Process ID: $$"
echo "Number of arguments: $#"
echo "All arguments: $@"
echo "Exit status of last command: $?"
echo "Current user: $USER"
echo "Current hostname: $HOSTNAME"
echo "Random number: $RANDOM"
## Function to demonstrate positional parameters
show_params() {
echo "Function received $## parameters"
echo "Parameter 1: $1"
echo "Parameter 2: $2"
echo "Parameter 3: $3"
}
## Call the function with parameters
echo -e "\nCalling function with parameters:"
show_params apple banana cherry
## Demonstrate positional parameters to the script
echo -e "\nScript positional parameters:"
echo "Parameter 1: $1"
echo "Parameter 2: $2"
echo "Parameter 3: $3"
- Speichern Sie die Datei und machen Sie sie ausführbar:
chmod +x special_variables.sh
- Führen Sie das Skript mit einigen Argumenten aus:
./special_variables.sh arg1 arg2 arg3
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Script name: ./special_variables.sh
Process ID: 12345
Number of arguments: 3
All arguments: arg1 arg2 arg3
Exit status of last command: 0
Current user: labex
Current hostname: labex
Random number: 23456
Calling function with parameters:
Function received 3 parameters
Parameter 1: apple
Parameter 2: banana
Parameter 3: cherry
Script positional parameters:
Parameter 1: arg1
Parameter 2: arg2
Parameter 3: arg3
Umgebungsvariablen
Umgebungsvariablen sind spezielle Variablen, die das Verhalten der Shell und von Programmen beeinflussen. Erstellen wir ein Skript, um diese zu untersuchen:
- Erstellen Sie eine neue Datei namens
environment_variables.sh:
#!/bin/bash
## Display common environment variables
echo "HOME directory: $HOME"
echo "Current user: $USER"
echo "Shell: $SHELL"
echo "Path: $PATH"
echo "Current working directory: $PWD"
echo "Terminal: $TERM"
echo "Language: $LANG"
## Creating and exporting a new environment variable
echo -e "\nCreating a new environment variable:"
MY_VAR="Hello from environment variable"
export MY_VAR
echo "MY_VAR = $MY_VAR"
## Demonstrate that child processes inherit environment variables
echo -e "\nAccessing environment variable from a child process:"
bash -c 'echo "Child process sees MY_VAR = $MY_VAR"'
## Remove the environment variable
echo -e "\nRemoving the environment variable:"
unset MY_VAR
echo "MY_VAR = $MY_VAR (should be empty)"
- Speichern Sie die Datei und machen Sie sie ausführbar:
chmod +x environment_variables.sh
- Führen Sie das Skript aus:
./environment_variables.sh
Sie sollten eine Ausgabe sehen, die verschiedene Umgebungsvariablen zeigt und demonstriert, wie diese erstellt, aufgerufen und entfernt werden können.
Dieser Schritt hat Ihnen gezeigt, wie der Variablen-Scope in Bash funktioniert, und Sie mit speziellen Variablen vertraut gemacht, die nützliche Informationen innerhalb Ihrer Skripte bereitstellen.