Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
Google Site



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.

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 07-27-2006
Registered User
 

Join Date: Aug 2005
Beliggenhed: Saskatchewan
Indlæg: 2.454
Problem med læses sh

Jeg har opdaget et meget irriterende problem i sh:

Code:
echo -en "one\ntwo\nthree" | while read VALUE
do
        echo "${VALUE}"
done

Dette vil udskrive et og to, men ikke tre. Den sidste linje er ignoreret, fordi den mangler en ny linje. Dette gør det svært at bruge sh for ting som CGI-scripting, du er nødt til at tilføje en ny linje med sed eller noget. Hvordan kan jeg tvinge læse i at læse den sidste linje?
Sponsorerede links
  #2 (permalink)  
Old 07-27-2006
Dhruva's Avatar
Registreret Bruger
 

Join Date: Mar 2006
Beliggenhed: Indien
Stillinger: 255
For mig er det udskrivning .. perfekt.
én
to
tre
  #3 (permalink)  
Old 07-27-2006
...@...
 

Join Date: Feb 2004
Beliggenhed: NM
Stillinger: 6156
Arbejder i ksh en sh på min boks så godt.

Har du IFS sat til noget underligt?
  #4 (permalink)  
Old 07-27-2006
Registered User
 

Join Date: Aug 2005
Beliggenhed: Saskatchewan
Indlæg: 2.454
Jeg har ikke ændret værdien af IFS. Hvilken version af ekko har du? Den version jeg bruger gennemfører '-n' flag, der forhindrer den i at udskrive den endelige newline, som så:
Code:
 # echo -n "Hello"
hello#

Hvis jeres ikke har-n, vil eksempel ikke mislykkes.

Jeg bruger GNU bash 3.1.16.
  #5 (permalink)  
Old 07-27-2006
reborg's Avatar
reborg reborg is offline Forum Staff  
Administrator
 

Join Date: Mar 2005
Beliggenhed: Irland
Indlæg: 4.351
Blot bekræfter, at dette er den adfærd under GNU bash for mig også.

Jeg har et spørgsmål, jeg er sikker på der er en grund, du ønsker at gøre det på denne måde, men hvorfor bruge-n, hvis rør til en anden kommando i den måde, du beskriver?
  #6 (permalink)  
Old 07-28-2006
Registered User
 

Join Date: Aug 2005
Beliggenhed: Saskatchewan
Indlæg: 2.454
Det er bare et eksempel. Det virkelige problem er at få bash at læse POST input fra CGI-grænseflade, som er fodret i stdin og har heller ingen afsluttende Newline. Lige nu er jeg nødt til at gøre skøre manipulationer med sed og exec. Med nok arbejde, jeg kan sikkert finde mindre vanvittige måder, men alle dem være at iværksætte en ny proces i stedet for at bruge en indlejret, der irriterer mig, at ingen ende.
  #7 (permalink)  
Old 07-28-2006
Registered User
 

Join Date: Aug 2005
Beliggenhed: Saskatchewan
Indlæg: 2.454
Jeg har opdaget en del af årsagen.
Code:
#!/bin/sh

while read LINE
do
        echo "${LINE}"
done

echo "${LINE}"


Code:
# echo -en "hello\nworld" | ./readtest.sh
hello
world
#

GNU bash returnerer fejl på EOF, selv når der var nogle data. Jeg vil bare nødt til at teste for tomme strenge.
Sponsorerede links
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 Slukket


Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Problem i læse () fra et rør JDS Programmering 2 10-13-2006 11:19 AM
Problem med læse & skrive EltonSky Programmering 11 08-31-2006 03:35 PM
File læse & fuldbyrde problem bedugget Shell Programmering og Scripting 5 08-14-2006 06:01 PM
SH script problem med læs pmpx Shell Programmering og Scripting 2 10-05-2005 02:40 PM
læse efter pipe problem OSX10.4 relyveld Shell Programmering og Scripting 5 07-07-2005 09:56 PM



Alle tidspunkter er GMT -4. Den tid er nu 01:42 AM.


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 Indhold Copyright © 1993-2010. Alle rettigheder Reserved.Ad Management by RedTyger

Content Relevant webadresser ved vBSEO 3.2.0