bash: Konvertiere '\ n' getrennte Strings in Array

8

Ich habe dieses Skript -

%Vor%

Jetzt enthält die Variable $names Zeichenfolgen, die durch Zeilenumbrüche begrenzt sind -

%Vor%

Ich habe versucht, die Array-Konvertierung mit dem Sub-String-Ansatz durchzuführen -

%Vor%

Aber das Problem ist, dass ich nicht auf sie zugreifen kann durch Indizierung (d. h. ${names[$i] etc), wenn ich diese Schleife ausführen -

%Vor%

Ich bekomme diese Ausgabe -

%Vor%

aber was ich will ist -

%Vor%

Ich konnte keinen guten Weg finden, dies zu tun. Bitte beachten Sie, dass die zweite Zeichenfolge Leerzeichen enthält.

Irgendeine Idee?

    
ramgorur 08.07.2014, 09:17
quelle

2 Antworten

15

Setze IFS . Shell verwendet die Variable IFS , um zu bestimmen, was die Feldtrennzeichen sind. Standardmäßig ist IFS auf das Leerzeichen gesetzt. Ändern Sie es in Newline.

%Vor%

Ausgabe

%Vor%     
Sanket Parmar 08.07.2014, 09:47
quelle
5

Lassen Sie mich zu Sanket Parmars Antwort beitragen . Wenn Sie die String-Aufteilung und Verarbeitung in eine separate Funktion extrahieren können, müssen Sie $IFS nicht speichern und wiederherstellen - stattdessen local verwenden:

%Vor%

Siehe auch:

firegurafiku 08.08.2017 10:15
quelle

Tags und Links