The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
dobbelt variable erklæring kotasateesh Shell Programmering og Scripting 3 08-31-2007 06:29 AM
Escape Alfanum for dobbelt anførselstegn navik_pathak Shell Programmering og Scripting 1 01-05-2007 02:34 PM
enkelt eller dobbelt anførselstegn i SED asami Shell Programmering og Scripting 2 07-17-2006 04:03 AM
Dobbelt Quotes inden for en variabel burton_1080 Shell Programmering og Scripting 4 12-01-2005 01:44 PM
dobbelt variable substitution asal_email2 UNIX for dummyer Spørgsmål & svar 1 06-14-2005 01:35 AM

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øg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 03-17-2008
mattemp mattemp is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 2
Problem med dobbelt anførselstegn og string variable

Hej,

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

I et shell script, jeg vil hente den linje, og bruge det som en variabel i en kommando som:
zip archive.zip $ LISTE

I cant få det til at fungere. Når jeg fysisk skriv kommandoen zip archive.zip "file1.ext" "file2.ext" "file3.ext", det virker fint, men når jeg forsøger at bruge en streng variabel jeg får en fejl.

Er der en ordentlig måde at gøre det?
Tak!
  #2 (permalink)  
Old 03-17-2008
epoke
Guest
  
 

Posts: n / a
Bits: 0 [Banker]
Når du skriver det på kommandolinjen, dobbelt anførselstegn er ikke videregives til zip. Hvis du bruger et script (vis det!) Derfra, hvis det går i anførselstegn, så zip ser dem, stop det.

Hvis du har kontrol over de ting, der frembringer den outputfil, at bruge en mindre tosset format. Se, hvordan xargs betyder det, det er sikkert en god model for dig.
  #3 (permalink)  
Old 03-17-2008
KevinADC KevinADC is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Jan 2008
Posts: 731
Citat:
Jeg har en fil output.txt som indeholder en enkelt linje med en liste over filer med anførselstegn:
"file1.ext" "file2.ext" "file3.ext"
åbne filen, og fjern prisstillelser, hvis du har ingen kontrol over det filformat. Derefter opdelt felterne til rum for at oprette en liste af filer til foder til zip funktion.

Skriv din nuværende kode (eller bare den relevante del) for mere hjælp.
  #4 (permalink)  
Old 03-17-2008
mattemp mattemp is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 2
Citat:
Oprindeligt Indsendt af KevinADC View Post
åbne filen, og fjern prisstillelser, hvis du har ingen kontrol over det filformat. Derefter opdelt felterne til rum for at oprette en liste af filer til foder til zip funktion.

Skriv din nuværende kode (eller bare den relevante del) for mere hjælp.
Her er den del af mit script hvor jeg har brug for mine filer liste:
Code:
LIST=$(tail -1 $FILE)
cvs log -N -r$rev1:$rev2 $LIST > changelog.txt
Min fil ser sådan her ud:
Code:
"java/file1.java" "java/file2.java" "java/file3.java" "java/file4.java" "java/file5.java"
Det er produktionen af et XSLT-behandling, så jeg har kontrol med det. Jeg kan generere en fil, der ser sådan ud, uden anførselstegn og min script fungerer upåklageligt:
Code:
java/file1.java java/file2.java java/file3.java java/file4.java java/file5.java
Men jeg ønskede at indhyllingsafstand filnavnene omkring prisstillelser, hvis nogle af de filnavne indeholde blanke.

Så måske jeg vil bare arbejde på mit xsl typografiarket for at undslippe blanke i filnavne?
  #5 (permalink)  
Old 03-18-2008
epoke
Guest
  
 

Posts: n / a
Bits: 0 [Banker]
Eller hvis du har muligheden, gøre det én fil pr linje (og bekymre sig om filnavne med newlines i dem i stedet ...).

xargs har en mulighed for at bruge en null (ASCII 0x00) terminatoren for den pågældende sag. (Nulls og skråstreg er de eneste to tegn, der er afvist i mappeindgang navne.)
  #6 (permalink)  
Old 03-18-2008
yunccll yunccll is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 23
hvis du vil gøre dette job med script, kan du prøve kode 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
Registreret Bruger
  
 

Join Date: Jan 2008
Stillinger: 11
Problem med dobbelt anførselstegn og string variable

Her er en hurtig løsning for dit script

LISTE \u003d $ (tail -1 $ FILE)
cvs log-N-r $ REV1: $ REV2 $ (eval $ LISTE)> changelog.txt

-Ramesh
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 06:58 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0