![]() |
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier. |
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| Doppel-Variable Erklärung | kotasateesh | Shell Programmierung und Scripting | 3 | 08-31-2007 06:29 AM |
| Escape-Zeichen für Anführungszeichen | navik_pathak | Shell Programmierung und Scripting | 1 | 01-05-2007 02:34 PM |
| Einzel-oder Doppel-Zitat in der SED | Asami | Shell Programmierung und Scripting | 2 | 07-17-2006 04:03 AM |
| Anführungszeichen innerhalb einer Variable | burton_1080 | Shell Programmierung und Scripting | 4 | 12-01-2005 01:44 PM |
| Doppel-Variablen-Ersetzung | asal_email2 | UNIX for Dummies Questions & Answers | 1 | 06-14-2005 01:35 AM |
![]() |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|
|
||||
|
Problem mit doppelten Anführungszeichen und String-Variable
Hallo,
Ich habe eine Datei output.txt enthält eine Zeile mit einer Liste der Dateien mit Zitaten: "file1.ext" "file2.ext" "file3.ext" In einer Shell-Skript, ich will, um die Zeile und verwenden Sie es als Variable in einem Befehl wie: zip archive.zip $ LISTE I cant get it Arbeit. Wenn ich physisch geben Sie den Befehl zip archive.zip "file1.ext" "file2.ext" "file3.ext", es funktioniert gut, aber wenn ich versuche, mit einem String-Variable Ich erhalte eine Fehlermeldung. Gibt es eine richtige Art und Weise zu tun? Danke! |
|
||||
|
Wenn Sie es auf der Befehlszeile, die Anführungszeichen sind nicht an zip. Wenn Sie ein Skript (zeigen!) Dann, wenn es vorbei ist in Anführungszeichen, damit sie sieht, zip, stop doing that.
Wenn Sie die Kontrolle über die Sache, die die Ausgabe-Datei erzeugt, die es mit einer weniger zany Format. Sehen Sie, wie xargs ist es, das ist wohl ein gutes Modell für Sie. |
|
||||
|
Zitat:
Veröffentlichen Sie Ihre aktuellen Code (oder einfach nur den entsprechenden Teil) für weitere Hilfe. |
|
||||
|
Zitat:
Code:
LIST=$(tail -1 $FILE) cvs log -N -r$rev1:$rev2 $LIST > changelog.txt Code:
"java/file1.java" "java/file2.java" "java/file3.java" "java/file4.java" "java/file5.java" Code:
java/file1.java java/file2.java java/file3.java java/file4.java java/file5.java Vielleicht sollte ich nur auf meinem XSL-Stylesheet, um zu entkommen Leerzeichen im Dateinamen? |
|
||||
|
Oder, wenn Sie die Möglichkeit haben, machen sie zu einer Datei pro Zeile (und Gedanken über Dateinamen mit Zeilenumbrüche in ihnen statt ...).
xargs hat eine Option zur Nutzung einer Null (ASCII 0x00) Terminator für diesem Fall. (Nullstellen und Schrägstriche sind die beiden einzigen Zeichen, die ausgeschlossen Eintrag im Verzeichnis-Namen.) |
|
||||
|
Wenn Sie möchten, dass für diese Aufgabe mit Skript, können Sie versuchen, Code wie folgt:
Code:
#!/bin/bash INFILE=output.txt #replace the double quote with space LIST=$(sed -e 's/\"/ /g' $INFILE) zip archive.zip $LIST exit 0 |
![]() |
| Lesezeichen |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|