Forum général.général Un script

Posté par  .
Étiquettes : aucune
0
10
avr.
2008
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?
  • # script

    Posté par  . É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  . É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  . Évalué à 1.

        comment combiner ??
        • [^] # Re: script

          Posté par  . Évalué à 1.

          On peut mettre la phrase entre " " ? non ?
  • # oui tu peux par exemple :

    Posté par  . É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" /!\
  • # ;)

    Posté par  . Évalué à 1.

    c'est pour voir ceux qui suivent ;)
  • # Ah ! Et, au fait ...

    Posté par  . Évalué à 3.

    C'est à rendre pour quand ?

Suivre le flux des commentaires

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