The UNIX and Linux Forums  


Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Het lezen van een bestand met sh met spaties in de bestandsnaam jekl5 Programmeren en Shell Scripting 4 02-29-2008 10:18
Hoe print argumenten samen met ruimten met behulp van awk jisha Programmeren en Shell Scripting 8 01-17-2008 01:43
Het lezen van een regel inclusief spaties aksarben UNIX voor Dummies Questions & Answers 1 09-19-2007 08:39 PM
Bash: Lezen 2 argumenten van een opdrachtregel Vozx Programmeren en Shell Scripting 0 12-08-2005 05:23 PM
Reading runtimegegevens argumenten uit een bestand Sabari Nath S UNIX voor Dummies Questions & Answers 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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 04-22-2009
Calypso Calypso is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 29
lezing in argumenten met spaties

Ik wil kunnen lezen in de input die spaties bevatten en zet die in een array. Elk veld moet worden delimeted door een spatie en moet een ander array-element. Maar ik cant get it aan het werk. alle tips?


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

Thanks in advance

Calypso
  #2 (permalink)  
Old 04-22-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmeur, auteur
  
 

Join Datum: maart 2007
Plaats: Toronto, Canada
Berichten: 2365

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

  #3 (permalink)  
Old 04-23-2009
Calypso Calypso is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 29
Hartelijk dank voor dat het enige probleem is dat als een gedeponeerd is een metacharacter bijvoorbeeld "*" it doesnt seem to work. Ive probeerde zoekt op het net maar ik cant find any soortgelijke voorbeelden, alle andere ideeën?


Calypso
  #4 (permalink)  
Old 04-23-2009
lavascript lavascript is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 47
Probeer iets als dit: --


Code:
#!/bin/ksh

input="$@"

set -A array $input

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

Bel met:


Code:
# ./script zero one two three four

  #5 (permalink)  
Old 04-23-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmeur, auteur
  
 

Join Datum: maart 2007
Plaats: Toronto, Canada
Berichten: 2365
Citaat:
Oorspronkelijk geplaatst door Calypso View Post
Hartelijk dank voor dat het enige probleem is dat als een gedeponeerd is een metacharacter bijvoorbeeld "*" it doesnt seem to work. Ive probeerde zoekt op het net maar ik cant find any soortgelijke voorbeelden, alle andere ideeën?

U moet de naam van uw input als het jokertekens bevat.

(En post de code die u momenteel gebruikt.)

Laatst bewerkt door cfajohnson; op 04.23.2009 01:34 PM..
  #6 (permalink)  
Old 04-23-2009
Calypso Calypso is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 29
Hi lavascript,

Het spijt haar niet script argumenten im proberen te splitsen, im lezing gebruikersinvoer in een while lus bv

terwijl de werkelijke
doen Lees input
# gesplitst input hier in array elementen
gedaan

Ook gebruik ik bash-shell en set-A geeft me een fout

"lijn 84: set:-Een ongeldige opties"
  #7 (permalink)  
Old 04-23-2009
lavascript lavascript is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 47
ok excuses set-A is voor ksh.

Bent u bezig met een while lus voor een andere taak, of is het puur voor deze functie?

Ervan uitgaande dat u wilt doen andere dingen in je while lus kunt u proberen de onderstaande code. Anders hoef je niet de tijd. Zeggen dat je zou kunnen gebruiken, terwijl in plaats van voor, maar minder dan nodig zou hebben veranderingen.


Code:

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

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 03:02.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0