echo zusammenfassen?

D

drm

Eroberer
Hi!
Ich versuche die ganze Zeit vergeblich die echo-Anweisung "zusammenzufassen". Und zwar gebe ich in ausgabe die Werte $name und $vorname mit. Jetzt habe ich gehört dass man diese echo-Anweisung mit Hilfe von Klammern () oder so ähnlich zusammenfassen kann!? Mir fehlt aber mal wieder die richtige Syntax, unter man echo bin ich auch nicht schlau geworden. Gibt es eine Lösung, wo ich nur ein einziges mal >> ausgbe schreiben muss? In diesem Beispiel ist das nicht so schlimm, allerdings wäre es schon ein Problem wenn ich z. B. hundert Werte übergebe und jedes mal >> ausgabe schreiben müsste. Ich hoffe ich habe mein Problem vernünftig geschildert. Nutze übrigens die ksh.
Code:
ausgabe_name(){
echo "Bitte geben Sie ihren Namen ein"
read name
echo "Bitte geben Sie ihren Vornamen ein"
read vorname
echo "Name: "$name"!" >> ausgabe
echo "Vorname: "$vorname"!" >> ausgabe
}

for i in 1 2;
  do
    ausgabe_name;
  done
 
Moin,

ich hab es so gelöst:
Code:
      1 #!/bin/bash
      2
      3 ausgabe_name(){
      4   echo "Bitte geben Sie ihren Namen ein"
      5   read name
      6   echo "Bitte geben Sie ihren Vornamen ein"
      7   read vorname
      [COLOR=RED]8   echo -e "Name: "$name"!\nVorname: "$vorname"!" >> ausgabe[/COLOR]
      9 }
     10
     11 for i in 1 2;
     12 do
     13   ausgabe_name;
     14 done
 
Klar, so würde es funktionieren. Nur was ist, wenn der echo-Befehl über mehrere Zeilen gehen soll und dazwischen z. B. noch eine Schleife zu finden ist? Das klappt dann in der Form bei mir nicht.

Siehe hier:
Code:
echo "text\n
    text\n
    text"$id"text\n
    text\n"
while read line
  do
            "ausgelesener text\n"
  done < testdatei

"    text\n
text" >> $file_name
Kann mir da vielleicht jemand einen Tipp geben bzw. weiter helfen?

EDIT:
Ich habe die Lösung gefunden :-)
Sieht jetzt so aus - das wollte ich erreichen:
Code:
(echo "text"
 echo "text"
 echo "text"$id"text"
 echo "text"
while read line
  do
            echo "ausgelesener text"
  done < testdatei

echo "text"
echo "text") >> $file_name
 
Zuletzt bearbeitet:
Hallo
Sorry, aber ich verstehe dein Problem nicht.
Für sich wiederholende Aufgaben nutzt man einfach Variablen und Schleifen.

Für die ksh wird zum Vermeiden des Zeilenumbruches bei echo übrigens die Verwendung von printf empfohlen.

Eventuell solltest du dich doch mal etwas mehr mit der Manpage von ksh beschäftigen, sonst kommst du nicht weit.

Gruß Wolfgang
 
Mein Problem war, dass ich nicht hinter jede echo-Anweisung >> $file_name schreiben wollte. Durch das Klammern habe ich jetzt nur noch ein >> $file_name im Script stehen. Hatte mich wohl etwas missverständlich ausgedrückt ;-)

Da ich erst am Anfang bin werde ich sicher noch oft mit der Manpage zu tun haben... *g*
 

Ähnliche Themen

MySQL-Abfrage an Variable übergeben

variable in sed verwenden

Probleme mit Skript (zum Sichern von Dateien)

Nutzerrechte in Samba 3.2

Ip Adresse eines embedded Linux über CGI ändern

Zurück
Oben