The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Läsa en fil med sh med mellanslag i filnamn jekl5 Shell-programmering och Skript 4 02-29-2008 10:18
Hur skriva ut argument tillsammans med utrymmen med hjälp av awk jisha Shell-programmering och Skript 8 01-17-2008 01:43
Läsa en rad inklusive mellanslag aksarben UNIX for Dummies Frågor & Svar 1 09-19-2007 08:39
Bash: Läsa 2 argument från en kommandorad Vozx Shell-programmering och Skript 0 12-08-2005 05:23
Läsa runtime argument från en fil Sabari Nath S UNIX for Dummies Frågor & Svar 4 08-24-2005 10:38

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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 04-22-2009
Calypso Calypso is offline
Registered User
  
 

Join Date: april 2009
Inlägg: 29
behandlingen i argument med blanksteg

Jag vill kunna läsa i ingången som innehåller utrymmen och sätta det i en matris. Varje område bör delimeted av ett mellanslag och bör vara en annan array element. Men jag skränande få det att fungera. något tips?


Kod:
read input
//type field1 field2 field3
echo "$input"
array="$input"

Tack på förhand

Calypso
  #2 (permalänk)  
Old 04-22-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmerare, författare
  
 

Join Date: mars 2007
Ort: Toronto, Kanada
Inlägg: 2.380

Kod:
read input
set -f
IFS=' '
array=( $input )

  #3 (permalänk)  
Old 04-23-2009
Calypso Calypso is offline
Registered User
  
 

Join Date: april 2009
Inlägg: 29
Tack så mycket för att det enda problemet är att om en in är en metatecken till exempel "*" Det spelar ingen verkar fungera. Ive försökt leta på nätet men jag skränande finna några liknande exempel, några andra idéer?


Calypso
  #4 (permalänk)  
Old 04-23-2009
lavascript lavascript is offline
Registered User
  
 

Join Date: april 2009
Inlägg: 47
Prova ungefär så här: --


Kod:
#!/bin/ksh

input="$@"

set -A array $input

print "Array element 0 = ${array}"
print "Array element 1 = ${array[1]"
print "Array element 4 = ${array[4]"

Samtal med:


Kod:
# ./script zero one two three four

  #5 (permalänk)  
Old 04-23-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmerare, författare
  
 

Join Date: mars 2007
Ort: Toronto, Kanada
Inlägg: 2.380
Citat:
Ursprungligen postat av Calypso View Post
Tack så mycket för att det enda problemet är att om en in är en metatecken till exempel "*" Det spelar ingen verkar fungera. Ive försökt leta på nätet men jag skränande finna några liknande exempel, några andra idéer?

Du måste uppge ditt input om den innehåller jokertecken.

(Och du gärna lägga upp koden som du använder för tillfället.)

Senast redigerad av cfajohnson; 04-23-2009 at 01:34..
  #6 (permalänk)  
Old 04-23-2009
Calypso Calypso is offline
Registered User
  
 

Join Date: april 2009
Inlägg: 29
Hej lavascript,

Förlåt dess inte script argument im försöker att dela upp, förbättra behandlingen användardata på ett tag loop t.ex.

men sant
göra läsa ingång
# delad ingång här i rad faktorer
gjord

även jag använder bash shell och ställ-A ger mig ett felmeddelande

"linje 84: set:-En ogiltig alternativ"
  #7 (permalänk)  
Old 04-23-2009
lavascript lavascript is offline
Registered User
  
 

Join Date: april 2009
Inlägg: 47
ok ursäkt set-A är för ksh.

Gör du en stund loop för en annan uppgift eller är det enbart för denna funktion?

Förutsatt att du vill göra andra saker i ditt medan loop kan du prova nedanstående nummer. Annars behöver du inte det då. Att säga att du kan använda samtidigt i stället för, men nedan skulle behöva förändras.


Kod:

array=""
array_count=0

for element in $input
do
     ... do some checking....
     array[$array_count]=$element
     ... do other stuff .....
     array_count=$(( $array_count + 1 ))
done

Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 04:51.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0