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 nanodots . Évalué à 1.
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 . Évalué à 3.
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 . Évalué à 1.
[^] # Re: script
Posté par Anas3000 . Évalué à 1.
# oui tu peux par exemple :
Posté par abofrp31 . Évalué à 3.
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 . Évalué à 1.
bien sur
et pas -eq 1
......
ou inverser les deux sequences.
[^] # Re: oui tu peux par exemple :
Posté par Anas3000 . Évalué à 1.
[^] # Re: oui tu peux par exemple :
Posté par Anas3000 . Évalué à 1.
( echo modification de $i : ok ; exit 0 ) ici c'est $1 .
merci
# ;)
Posté par abofrp31 . Évalué à 1.
# Ah ! Et, au fait ...
Posté par Obsidian . Évalué à 3.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.