![]() |
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui. |
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| doppia dichiarazione variabile | kotasateesh | Shell scripting e di programmazione | 3 | 08-31-2007 05:29 AM |
| Fuga Char per doppie virgolette | navik_pathak | Shell scripting e di programmazione | 1 | 01-05-2007 02:34 PM |
| singola o doppia citazione in SED | asami | Shell scripting e di programmazione | 2 | 07-17-2006 03:03 AM |
| Doppia Quotazioni in una variabile | burton_1080 | Shell scripting e di programmazione | 4 | 12-01-2005 01:44 PM |
| doppia sostituzione della variabile | asal_email2 | UNIX for Dummies Domande & Risposte | 1 | 06-14-2005 12:35 AM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
Problema con doppie virgolette e variabile stringa
Ciao,
Ho un file output.txt che contiene una sola riga, con un elenco di file con le citazioni: "file1.ext" "file2.ext" "file3.ext" In uno script di shell, voglio recuperare la linea e utilizzarlo come una variabile in un comando come: zip archive.zip $ ELENCO I cant farlo funzionare. Quando ho fisicamente digitare il comando zip archive.zip "file1.ext" "file2.ext" "file3.ext", funziona bene, ma quando si tenta di utilizzare una variabile di stringa si ottiene un errore. C'è un modo corretto di farlo? Grazie! |
|
||||
|
Quando si digita sulla riga di comando, le virgolette non sono passati a zip. Se si utilizza uno script (vedere!) E poi se si tratta di passare in modo che le virgolette zip li vede, smettere di fare questo.
Se hai il controllo sulla cosa che genera il file di output, è utilizzare un formato zany meno. Guarda come si xargs, che è probabilmente un buon modello per voi. |
|
||||
|
Citazione:
Inserisci il tuo codice corrente (o anche solo la parte pertinente) per ulteriori informazioni. |
|
||||
|
Citazione:
Codice:
LIST=$(tail -1 $FILE) cvs log -N -r$rev1:$rev2 $LIST > changelog.txt Codice:
"java/file1.java" "java/file2.java" "java/file3.java" "java/file4.java" "java/file5.java" Codice:
java/file1.java java/file2.java java/file3.java java/file4.java java/file5.java Quindi forse dovrebbe funzionare sul mio foglio di stile XSL per sfuggire spazi bianchi in nomi dei file? |
|
||||
|
Oppure, se hai la possibilità, lo rendono uno per ogni riga del file (e preoccuparsi di nomi di file con il capo in essi invece ...).
xargs ha un opzione per l'utilizzo di un cavo "null (ASCII 0x00) di terminazione per il caso particolare. (Nulls barre e sono gli unici due personaggi che sono approvati nella directory di entrata nomi.) |
|
||||
|
se si vuole fare questo lavoro con lo script, si può provare il codice come segue:
Codice:
#!/bin/bash INFILE=output.txt #replace the double quote with space LIST=$(sed -e 's/\"/ /g' $INFILE) zip archive.zip $LIST exit 0 |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|