Retourner aux forums || Retourner au forum general.general

general.general : Un script

Posté par Anas3000 () le 10 avril 2008
0
Salut,

je veux écrire un script, qui prend 2 arguments, le premier c'est le chemin d'un fichier et le deuxième c'est une phrase, une fois que je lance ce script , la phrase doit être ajouté a la fin du fichier déterminer par le chemin.

Savez-vous comment le faire?

> Lire le message (10 commentaires, moyenne: 1,6).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

script

Posté par nanodots () le 10/04/2008 à 16:29. (lien). Évalué à 1.

tu mets dans ton script :
echo $2 >> $1
ce qui veux dire: écrit (echo) le 2ieme argument ($2), à la fin du fichier (>>) premiers argument ($1)
Par exemple si ton script s'appelle toto.bash, tu le lances par:
bash toto.bash /home/moi/toto.txt "toto est nul en cours"

Voila.

  • [^]Re: script

    Posté par gaaaaaAab () le 10/04/2008 à 16:56. (lien). Évalué à 3.

    attention, ça peut ne pas fonctionner, si la phrase contient des espaces.
    A combiner avec la réponse d'abofrp31 pour faire plus complet.

    #!/bin/bash
    file=$1
    shift;
    echo $* >> file

    (man bash pour des explications sur shift et $*)

    • [^]Re: script

      Posté par Anas3000 () le 10/04/2008 à 16:59. (lien). Évalué à 1.

      comment combiner ??

      • [^]Re: script

        Posté par Anas3000 () le 10/04/2008 à 17:01. (lien). Évalué à 1.

        On peut mettre la phrase entre " " ? non ?

oui tu peux par exemple :

Posté par abofrp31 () le 10/04/2008 à 16:33. (lien). Évalué à 3.

Bonjour,

oui tu peux par exemple faire comme ceci :

#!/bin/bash
# tester les parametres et donner les instructions si on met pas de parametres.
[ $# -eq 0 ] && ( echo USAGE : $0 chemin/fichier "phrase" ; exit 1 )
# tester l'existance du fichier :
[ -f $1 ] || ( echo ***WARNING *** \n $1 n existe pas ; exit 1)
# si le fichier existe ajouter la ligne à la fin
echo $2 >> $1
[ $? -eq 1 ] && ( echo modification de $i : ok ; exit 0 ) || ( echo ***WARNING*** modification de $1 a echouée ; exit 1 )
# bien sur tester le resultat ! et prévenir l'utilisateur


/!\ ne pas oublier de mettre entre quotes la phrase
script fichier "phrase" /!\

  • [^]Re: oui tu peux par exemple :

    Posté par abofrp31 () le 10/04/2008 à 16:51. (lien). Évalué à 1.

    [ $? -eq 0 ] ........................
    bien sur

    et pas -eq 1

    ......

    ou inverser les deux sequences.

    • [^]Re: oui tu peux par exemple :

      Posté par Anas3000 () le 10/04/2008 à 16:58. (lien). Évalué à 1.

      Merci beaucoup

  • [^]Re: oui tu peux par exemple :

    Posté par Anas3000 () le 10/04/2008 à 17:07. (lien). Évalué à 1.

    oui ça marche .
    ( echo modification de $i : ok ; exit 0 ) ici c'est $1 .
    merci

;)

Posté par abofrp31 () le 10/04/2008 à 17:50. (lien). Évalué à 1.

c'est pour voir ceux qui suivent ;)

Ah ! Et, au fait ...

Posté par Obsidian () le 11/04/2008 à 14:42. (lien). Évalué à 3.

C'est à rendre pour quand ?

Revenir en haut de page || Retourner aux forums || Retourner au forum general.general