Rechercher : dans
Par :

Shell script : besoin d'aide !

Dernière réponse le 5 déc 2007 à 17:26:02 momsse, le 2 mai 2007 à 17:43:46 
 Signaler ce message aux modérateurs

Salut à tous,

Je m'enmele un peu les pinceaux en shell-script, je bug sur l'exercice suivant:

Je dois crée une comande ifdef qui lancé avec un arguments comme en desous:

$ ifdef arguments.h

Me crée un fichier arguments.h avec ceci à l'interieur:

#ifndef ARGUMENTS_H
#define ARGUMENTS_H

#endif /* ARGUMENTS_H */


Voila à quoi ressemble l'état actuel de mon code:

#!/bin/sh

echo "#ifndef $1_H" > $1
echo "#define $1_H" >> $1
echo "#endif$1_H" >> $1


Le problème est qu'ici l'arguments n'est pas forcément en majuscule, je n'arrive pas du tout à faire bon usage de la commande tr ...

Merci d'avance à tous ce qui voudrons bien me donner un coup de pouce !

Configuration: Mac PowerPC
Firefox 2.0.0.1

Meilleures réponses pour « Shell script : besoin d'aide ! » dans :
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Guide d'utilisation du Shell pour débutant VoirSHELL BASH - GUIDE D'UTILISATION - Niveau Débutant Introduction Appel aux membres CCM II. C'est quoi le shell ? III. Comment accéder à la ligne de commande IV. Les consoles virtuelles Exemple : Accéder à la console 3 depuis l'interface...
Systèmes UNIX - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système...

1

gorkimat, le 2 mai 2007 à 17:47:30
  • +2

Salut,

Essaye avec :

`echo "$1" | tr "[:lower:]" "[:upper:]"`


Bon courage

Répondre à gorkimat

2

momsse, le 2 mai 2007 à 18:10:52

Je te remercie, aprés test ca marche parfaitement, voila a quoi sa ressemble :

#!/bin/sh
echo "#ifndef $(echo $1|tr '[a-z]' '[A-Z]')_H" > $1
echo "#define $(echo $1|tr '[a-z]' '[A-Z]')_H" >> $1
echo "#endif /* $(echo $1|tr '[a-z]' '[A-Z]')_H */" >> $1

Répondre à momsse

3

momsse, le 2 mai 2007 à 18:37:14

Dans cet exercice je dois agrémenter le code précédant de telle manière à:

1) affcher un message si aucun arguments n'a été donné dans la commande

2) ne pas modifier arguments.h si sa première ligne est:
#ifndef ARGUMENTS_H

3)creer 1e fichier normalement autrement



Voila l'état actuel de mon code, j'arrive à intégrer facilement les condition 1 et 3 mais c'est plus compliqué pour la deuxième ...

#!/bin/sh
if [ $# = 0 ]
then
echo "Il manque un argument aprés ifdef"
else
echo "#ifndef $(echo $1|tr '[a-z]' '[A-Z]')_H" > $1
echo "#define $(echo $1|tr '[a-z]' '[A-Z]')_H" >> $1
echo "#endif /* $(echo $1|tr '[a-z]' '[A-Z]')_H */" >> $1


Encore une fois, je remercie tous ceux qui m'aideront !

Répondre à momsse

4

gorkimat, le 2 mai 2007 à 18:58:33

Salut,

Un truc dans le genre devrait pouvoir le faire :

#!/bin/sh 
if [ $# = 0 ] 
then 
echo "Il manque un argument aprés ifdef" 
else
 if [ `head -1 $1` != "" ]
 then
  echo "#ifndef $(echo $1|tr '[a-z]' '[A-Z]')_H" > $1 
  echo "#define $(echo $1|tr '[a-z]' '[A-Z]')_H" >> $1 
  echo "#endif /* $(echo $1|tr '[a-z]' '[A-Z]')_H */" >> $1 
 fi
fi



Mais tu dois pouvoir le faire plus "propre" car je ne connais pas tres bien la syntaxe du sh.

Bon courage

Répondre à gorkimat

5

gorkimat, le 2 mai 2007 à 21:15:55

Salut

Autant pour moi, j'ai zapper une info :

#!/bin/sh 
if [ $# = 0 ] 
then 
echo "Il manque un argument aprés ifdef" 
else
 if [ `head -1 $1` != "#ifndef ARGUMENTS_H" ]
 then
  echo "#ifndef $(echo $1|tr '[a-z]' '[A-Z]')_H" > $1 
  echo "#define $(echo $1|tr '[a-z]' '[A-Z]')_H" >> $1 
  echo "#endif /* $(echo $1|tr '[a-z]' '[A-Z]')_H */" >> $1 
 fi
fi

Répondre à gorkimat

6

 ayman, le 5 déc 2007 à 17:26:02

Bonjour,

je souhaiterais connaitre la commande shell pour afficher des pipe | sur une ligne pour avoir 10 pipe au total

exemple si j'ai 3 pipe sur une ligne ... je souiterais rajouter 7 pipe
et la ligne suivante si j'en ai 4 il me faut rajouter 6 pipe.

merci d'avance

Répondre à ayman
Collection CommentÇaMarche.net