Shellskript – Variablen an andere Skripte übergeben

Die Weitergabe von Variablen aus einem Shellskript an ein anderes ist möglich und macht das Zusammenspiel einzelner Skripte einfacher und
damit die Erstellung von komplexeren Abläufen übersichtlicher.

In diesem Beispiel gibt es drei verschiedene Skripte

  • hauptskript.sh = Hauptskript, dass die Variablen
    enthält
  • test2.sh = Unterskript
  • test3.sh = Unterskript

Hauptskript:

hauptskript.sh

#!/usr/bin/env bash

###################################
# Variables
###################################

# Mountpoint = Variable 1
MOUNTPOINT="/mnt/usbbackup/"

# E-Mail Address = Variable 2
EMAIL="email@address.de"

# Log File location and name = Variable 3
LOGFILE="~/test.log"

VARIABLE4="I-am-a-variable"

echo "Logfile = ${LOGFILE}"

###################################
# Call the sub-script 
###################################
/bin/bash sub1.sh "${MOUNTPOINT}" "${EMAIL}" ${LOGFILE}

###################################
# Call the sub-script 
###################################
/bin/bash sub2.sh "${VARIABLE4}"

Im Hauptskript werden zu Beginn alle Variablen wie gewohnt definiert.

Der Aufruf der Unterskripte erfolgt im hauptskript.sh mit /bin/bash sub1.sh jedoch werden die erforderlichen
Variablen noch mitgegeben.

An das Unterskript 1 sub1.sh werden die Variablen „${MOUNTPOINT}“ „${EMAIL}“ „${LOGFILE}“ durchgereicht.

In sub1.sh lassen sich diese in der richtigen Reihenfolge aufrufen und verwenden.

Das Ansprechen der Variablen erfolgt dort mit $1$9.

Das Skript wird mit sh hauptskript.sh gestartet.

Unterskript 1 = sub1.sh

Im Unterskript sub1.sh werden die Variablen durch echo direkt ausgegeben und im Terminal angezeigt.

#!/usr/bin/env bash

echo "Hello test2.sh script"

echo "MOUNTPOINT = $1"

echo "EMAIL = $2"

echo "Logfile = $3"

Unterskript 2 = sub2.sh

Die VARIABLE4 ist in diesem Unterskript aber $1, da im Hauptskript der Aufruf mit dem Befehl erfolgt.
Die ${VARIABLE4} steht an erster Stelle.
/bin/bash sub2.sh ${VARIABLE4}

Die Variable steht damit für das Skript an erster Stelle.

#!/usr/bin/env bash

echo "VARIABLE4 = $1"

In meinem Skript imagebackup.sh verwende ich diese Methode, um die Unterskripte auch mit anderen Hauptskripten zu
verwenden.

Da in den Unterskripten keine Variablen definiert sind, sondern die von den Hauptskripten übergeben werden, ist somit eine
Mehrfachverwendung für gleiche Aufgaben möglich.

Werden mehrere Hauptskripte verwendet, muss zwingend auf die richtige Reihenfolge der Variablenübergabe geachtet werden.

Grafisch sieht der Prozess so aus:

Shellskript Variable an anderes Skript übergeben
Shellskript Variable an anderes Skript übergeben

Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


Photo by George Girnas on Unsplash

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.