The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
dobbel variabel declaration kotasateesh Shell programmering og Skripting 3 08-31-2007 05:29
Escape Char for dobbelt anførselstegn navik_pathak Shell programmering og Skripting 1 01-05-2007 02:34
enkle eller doble anførselstegn i SED asami Shell programmering og Skripting 2 07-17-2006 03:03
Doble anførselstegn i en variabel burton_1080 Shell programmering og Skripting 4 12-01-2005 01:44
dobbel variabel substitusjon asal_email2 UNIX for Dummies Spørsmål og svar 1 06-14-2005 12:35

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 03-17-2008
mattemp mattemp is offline
Registrert bruker
  
 

Bli Date: Mar 2008
Innlegg: 2
Problemet med doble anførselstegn og string variable

Hallo,

Jeg har en fil output.txt som inneholder én linje med en liste over filer med anførselstegn:
"file1.ext" "file2.ext" "file3.ext"

I et shell script, jeg ønsker å hente og bruke den som en variabel i en kommando som:
zip archive.zip $ LIST

Jeg skrånende få arbeid. Når jeg fysisk skriv inn kommandoen zip archive.zip "file1.ext" "file2.ext" "file3.ext", den fungerer helt fint, men når jeg prøver å bruke en streng variable får jeg en feilmelding.

Er det en riktig måte å gjøre det?
Takk!
  #2 (permalink)  
Old 03-17-2008
æra
Gjestene
  
 

Innlegg: n / a
Bits: 0 [Bank]
Når du skriver det på kommandolinjen, den doble anførselstegn er ikke gått til zip. Hvis du bruker et skript (vis det!) Så hvis det er bestått i anførselstegn slik at zip ser dem, stopp med det.

Hvis du har kontroll over ting som genererer utdatafilen, gjør det å bruke en mindre zany format. Se hvordan xargs gjør det, det er sannsynligvis en god modell for deg.
  #3 (permalink)  
Old 03-17-2008
KevinADC KevinADC is offline Forum Advisor  
Registrert bruker
  
 

Bli Date: Jan 2008
Innlegg: 731
Sitat:
Jeg har en fil output.txt som inneholder én linje med en liste over filer med anførselstegn:
"file1.ext" "file2.ext" "file3.ext"
åpne filen og fjerne anførselstegn hvis du ikke har noen kontroll over filformat. Deretter deles feltene på plass for å lage en liste over filer til mat til zip funksjon.

Legg inn gjeldende kode (eller bare den relevante delen) for å få mer hjelp.
  #4 (permalink)  
Old 03-17-2008
mattemp mattemp is offline
Registrert bruker
  
 

Bli Date: Mar 2008
Innlegg: 2
Sitat:
Originally Posted by KevinADC View Post
åpne filen og fjerne anførselstegn hvis du ikke har noen kontroll over filformat. Deretter deles feltene på plass for å lage en liste over filer til mat til zip funksjon.

Legg inn gjeldende kode (eller bare den relevante delen) for å få mer hjelp.
Her er den del av min script der jeg filene mine listen:
Code:
LIST=$(tail -1 $FILE)
cvs log -N -r$rev1:$rev2 $LIST > changelog.txt
Min fil ser slik ut:
Code:
"java/file1.java" "java/file2.java" "java/file3.java" "java/file4.java" "java/file5.java"
Det er produksjon av et XSLT-behandling slik at jeg har kontroll på det. Jeg kan generere en fil som ser slik ut, uten anførselstegn og min Skriptet fungerer perfekt:
Code:
java/file1.java java/file2.java java/file3.java java/file4.java java/file5.java
Men jeg ville bryte Filnavnene rundt sitater i tilfelle noen av filnavnene inneholder whitespaces.

Så kanskje jeg skal bare fungere på min xsl stilarket for å unnslippe whitespaces i filnavn?
  #5 (permalink)  
Old 03-18-2008
æra
Gjestene
  
 

Innlegg: n / a
Bits: 0 [Bank]
Eller hvis du har muligheten, er det én fil per linje (og bekymre filnavn med newlines i dem i stedet ...).

xargs har et alternativ å bruke en null (ASCII 0x00) Terminator om en bestemt sak. (Nulls og skråstreker er de eneste to tegn som er ulovlige i katalogoppføring navn.)
  #6 (permalink)  
Old 03-18-2008
yunccll yunccll is offline
Registrert bruker
  
 

Bli Date: Mar 2008
Innlegg: 23
om du vil gjøre denne jobben med skriptet, kan du prøve koden som følger:
Code:
#!/bin/bash

INFILE=output.txt

#replace the double quote with space
LIST=$(sed -e 's/\"/ /g' $INFILE)

zip archive.zip $LIST

exit 0
  #7 (permalink)  
Old 03-19-2008
faltooweb faltooweb is offline
Registrert bruker
  
 

Bli Date: Jan 2008
Innlegg: 11
Problemet med doble anførselstegn og string variable

Her er en rask løsning på skriptet

LIST \u003d $ (hale -1 $ fil)
cvs log-N-R $ rev1: $ rev2 $ (eval $ LIST)> changelog.txt

-Ramesh
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 01:01.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0