Shellscripts 101: Frage zu Syntax(?) bei Verwendung von Variablen und echo, evtl. weitere
Hallo, dies ist mein erster Beitrag hier im Hackerboard.
Ich habe vor zwei Tagen angefangen, mir ein Skript zu schreiben und arbeite gerade ein bisschen Literatur dazu durch. Mir bleiben allerdings trotzdem noch Fragen unbeantwortet.
#!/bin/bash
function GetDaten()
{
# (Code, der vorname, nachname und email mit Werten füllt). Hier mal etwas Dummy-Code:
vorname=`./script2.sh parametera`
nachname=`script2.sh parameterb`
email="myemail@example.de"
}
a="noooo"
b="yeees"
for ((i=1;i<=5;i++))
do
GetDaten
echo "Vorname: ${vorname} Nachname: $nachname"
echo "Nachname: $nachname"
echo "Email: $email"
echo "a b argh!1 $a argh!2 $b argh!3"
done
Erzeugt folgende Ausgabe (eine Iteration):
In der ersten Zeile fehlt etwas, oder? ("Vorname: " und der Wert von $vorname.) Wo ist der Unterschied zur testweise eingefügten letzten Zeile echo "$a argh $b"?
Interessant auch: Belege ich die Variable Vorname mit einem ausgeschriebenen String und nicht der Ausgabe eines anderen Skripts, so wird alles korrekt angezeigt.
Auch noch eine Frage: Wenn ich eine Variable mit einem Ausdruck in `solchen Akzenten` belege, wird die Anweisung dann bei der Belegun der Variable ausgeführt, oder, wenn ich die Variable verwende?
Soweit zu meinen ersten Fragen, sicher nicht die letzte.
Edit: Noch eine Frage: gibt es einen saubereren Weg, eine Zeichenkette in eine Datei zu schreiben? Ich mache es im Moment so:
Weiteres Problem: awk eine in meiner Shell bzw. im Skript bekannte Variable (einen Dateipfad) übergeben, der in der behandelten Datei gesucht werden soll.
PS: Lässt sich hier Code eingefärbter Syntax erzeugen? Die Formatierungsoptionen scheinen innerhalb der CODE-Tags ja leider nicht zu funktionieren.
Hallo, dies ist mein erster Beitrag hier im Hackerboard.
Ich habe vor zwei Tagen angefangen, mir ein Skript zu schreiben und arbeite gerade ein bisschen Literatur dazu durch. Mir bleiben allerdings trotzdem noch Fragen unbeantwortet.
#!/bin/bash
function GetDaten()
{
# (Code, der vorname, nachname und email mit Werten füllt). Hier mal etwas Dummy-Code:
vorname=`./script2.sh parametera`
nachname=`script2.sh parameterb`
email="myemail@example.de"
}
a="noooo"
b="yeees"
for ((i=1;i<=5;i++))
do
GetDaten
echo "Vorname: ${vorname} Nachname: $nachname"
echo "Nachname: $nachname"
echo "Email: $email"
echo "a b argh!1 $a argh!2 $b argh!3"
done
Erzeugt folgende Ausgabe (eine Iteration):
Code:
Nachname: myNachname
Nachname: myNachname
Email: myemail@example.de
a b argh!1 noooo argh!2 yeees argh!3
In der ersten Zeile fehlt etwas, oder? ("Vorname: " und der Wert von $vorname.) Wo ist der Unterschied zur testweise eingefügten letzten Zeile echo "$a argh $b"?
Interessant auch: Belege ich die Variable Vorname mit einem ausgeschriebenen String und nicht der Ausgabe eines anderen Skripts, so wird alles korrekt angezeigt.
Auch noch eine Frage: Wenn ich eine Variable mit einem Ausdruck in `solchen Akzenten` belege, wird die Anweisung dann bei der Belegun der Variable ausgeführt, oder, wenn ich die Variable verwende?
Soweit zu meinen ersten Fragen, sicher nicht die letzte.
Edit: Noch eine Frage: gibt es einen saubereren Weg, eine Zeichenkette in eine Datei zu schreiben? Ich mache es im Moment so:
Code:
echo "meine Zeichenkette abhängig von $variable" >> datei
PS: Lässt sich hier Code eingefärbter Syntax erzeugen? Die Formatierungsoptionen scheinen innerhalb der CODE-Tags ja leider nicht zu funktionieren.
