The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Lecture d'un fichier à l'aide de sh avec des espaces dans le nom de fichier jekl5 De programmation et de script Shell 4 02-29-2008 10:18 AM
Comment imprimer des arguments avec des espaces en utilisant awk JISHA De programmation et de script Shell 8 01-17-2008 01:43 AM
La lecture d'une ligne y compris les espaces aksarben UNIX pour les nuls Questions et réponses 1 09-19-2007 08:39 PM
Bash: Lecture de 2 arguments d'une ligne de commande Vozx De programmation et de script Shell 0 12-08-2005 05:23 PM
Lecture des arguments d'exécution à partir d'un fichier Sabari Nath S UNIX pour les nuls Questions et réponses 4 08-24-2005 10:38 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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 04-22-2009
Calypso Calypso is offline
Registered User
  
 

Date d'inscription: avril 2009
Messages: 29
lecture avec des espaces dans les arguments

Je veux être capable de lire à l'entrée qui contiennent des espaces et de mettre cela dans un tableau. Chaque champ doit être delimeted d'un espace et un autre devrait être l'élément de tableau. Cependant I cant get it au travail. any tips?


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

Merci d'avance

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

Join Date: Mar 2007
Lieu: Toronto, Canada
Posts: 2,380

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

  #3 (permalink)  
Old 04-23-2009
Calypso Calypso is offline
Registered User
  
 

Date d'inscription: avril 2009
Messages: 29
Merci beaucoup pour que, le seul problème est que si un dépôt est une metacharacter par exemple "*" ne marche pas, il semble fonctionner. Jai essayé la recherche sur le net, mais Je ne trouve aucun des exemples similaires, d'autres idées?


Calypso
  #4 (permalink)  
Old 04-23-2009
lavascript lavascript is offline
Registered User
  
 

Date d'inscription: avril 2009
Posts: 47
Essayez quelque chose comme ceci: --


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]"

Appel avec:


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 Date: Mar 2007
Lieu: Toronto, Canada
Posts: 2,380
Citation:
Posté par Calypso View Post
Merci beaucoup pour que, le seul problème est que si un dépôt est une metacharacter par exemple "*" ne marche pas, il semble fonctionner. Jai essayé la recherche sur le net, mais Je ne trouve aucun des exemples similaires, d'autres idées?

Vous devez indiquer votre entrée si elle contient des caractères.

(Et, s'il vous plaît envoyer le code que vous utilisez actuellement.)

Dernière édition par cfajohnson; au 04.23.2009 01:34 PM..
  #6 (permalink)  
Old 04-23-2009
Calypso Calypso is offline
Registered User
  
 

Date d'inscription: avril 2009
Messages: 29
Salut lavascript,

regrette pas ses arguments dans le script essaie de se séparer, im lecture utilisateur dans une boucle while par exemple

while true
lisons d'entrée
# sépare ici d'entrée en éléments d'un tableau
fait

Je suis également en utilisant shell bash set-A et me donne une erreur

"ligne 84: set:-A invalide options"
  #7 (permalink)  
Old 04-23-2009
lavascript lavascript is offline
Registered User
  
 

Date d'inscription: avril 2009
Posts: 47
ok excuses set-A pour ksh.

Etes-vous tout en faisant une boucle pour une autre tâche ou est-ce uniquement pour cette fonction?

En supposant que vous voulez faire d'autres choses dans votre boucle while, vous pouvez essayer le code ci-dessous. Sinon, vous n'avez pas besoin du tout. Dire que l'on peut utiliser au lieu de tout, mais au-dessous devront changements.


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

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 04:22 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0