Ich habe 2 Variablen
VAL1="C70AN"
VAL2="MBA30"
und ich habe ein Verzeichnis in meinem System/opt/web/C70/MBA/
Wie kann ich mithilfe von Variablen in dieses Verzeichnis gelangen?
Zum Beispielcd /opt/web/$VAL1/$VAL2
Wie kann ich den bestimmten Text aus der Variable im Shell-Skript extrahieren?
Antwort1
Die Antwort von @Anthon ist vollkommen richtig, obwohl sie meiner Meinung nach etwas zu viel Tipparbeit bedeutet. Ich schlage vor, eine Shell-Funktion (Bash) mit dem Namen (z. B.) „mycd“ als Wrapper zu definieren:
function mycd {
cd /opt/web/${VAL1:0:3}/${VAL2:0:3}
}
Unabhängig davon, welche Werte die Variablen $VAR1 und $VAR1 derzeit haben, wird durch den Aufruf dieser Funktion das Verzeichnis an den erwarteten Speicherort geändert.
Versuchen Sie das folgende Beispiel in einem laufenden Bash-Terminal und drücken Sie am Ende jedes Eingabezeilenfensters die Eingabetaste):
user% cd; pwd
/home/user
user% function mycd { cd /opt/web/${VAL1:0:3}/${VAL2:0:3} }
user% export VAL1="C70AN"; export VAL2="MBA30"
user% mycd
user% pwd
/opt/web/C70/MBA
user%
Dieses Beispiel setzt natürlich voraus, dass der Verzeichnisbaum "/opt/web/C70/MBA" existiert. Ist dies nicht der Fall, erhalten Sie eine Fehlermeldung wie
bash: cd: /opt/web/C70/MBA: file or directory not found
Dieses Ergebnis ist dennoch ein Beweis für die korrekte Arbeit der „mycd“-Funktion, da diese versucht in das berechnete – (noch) nicht existierende – Verzeichnis zu wechseln.
HTH auch