Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/12/2010, 17h43   #1
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 105
Points : 31
Points : 31
Par défaut insérer la sortie d'une commande dans un fichier

Bonjour

J'ai un problème : je souhaite insérer du texte dans un fichier après l'avoir récupéré dans ce même fichier. Même en essayant de mettre ma variable entre $(), ça ne fonctionne pas.

Je m'explique :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#Pour chaque fichier
for i in `find . -name "*.txt"`; do
    #je recupere chaque ligne qui commence par function
    begin=$(awk 'BEGIN {  }
		/function/ { print $0 }
    ' $i)
 
    #pour chaque ligne dans $begin
    for fct in $begin; do
              #recuperer les noms des fonctions
	      nom=$(echo $fct | cut -d " " -f 2 | cut -d "(" -f 1)
 
              #recuperer les parametres des fonctions		
	      var=$(echo $fct | cut -d " " -f 2 | cut -d "(" -f 2 | cut -d ")" -f 1)
 
              #recuperer chaque mot avant une virgule
              var2=$(echo $var | sed 's/,/ /g')
    done
 
    #on insère  le nom de la fonction : j'ai essayé simples quotes, doubles quotes, $(), et mélanges aussi....... rien n'y fait soit ça met rien soit ça met $nom au lieu de la valeur qu'elle contient
    cat $i | sed '/^function/ i\ \n\/**\n* function $(nom) : ' > $i
Comment je peux faire pour insérer le contenu de ma variable dans mon fichier ?

Je suis bloquée depuis des jours :s

Cordialement

Ginger
ginger4957 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2010, 18h30   #2
Membre Expert
 
Avatar de Nudger
 
Homme Thomas Arnaud
Directeur de projet
Inscription : octobre 2010
Messages : 452
Détails du profil
Informations personnelles :
Nom : Homme Thomas Arnaud
Âge : 36
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Directeur de projet
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2010
Messages : 452
Points : 1 012
Points : 1 012
Envoyer un message via Skype™ à Nudger
Bonsoir,

Pour ajouter du contenu à un fichier existant il faut doubler les chevrons: ">>" au lieu de ">".
Le chevron simple écrase le fichier existant avant d'écrire.
__________________
www.nudge.org Surveillez et optimisez vos applications Java
Nudger est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/12/2010, 22h00   #3
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 064
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 064
Points : 4 123
Points : 4 123
bonjour ginger,

contrairement à ce que tu sembles croire for ne lis pas les données ligne à ligne, mais élément par élément. En conséquence, en général, on évite for i in `cmd`, car ça donne rarement ce qu'on veut.

idem pour for fct in $begin, cela va itérer à travers tous les éléments de $begin, mais ne pas lire ligne à ligne !

-
plutôt que des cut pipés, utilise sed.

-
si tu poses ta question ici, c'est que tu utilises GNU/linux, et donc GNU sed, alors :
Code :
sed -i.old "/^function/ i\ \n\/**\n* function $(nom) : " $i
ce qui va insérer la valeur de $nom à chaque ligne qui commence par function.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/12/2010, 10h54   #4
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 105
Points : 31
Points : 31
Bonjour

Merci pour vos réponses

Nudger si je mets deux chevrons, mon fichier devient :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
mes commentaires
*/
function truc(p1,p2){
    //contenu
}
 
/**
mes commentaires
*/
function chose(){
    //contenu
}
 
 
function truc(p1,p2){
    //contenu
}
 
function chose(){
    //contenu
}
au lieu de :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
/**
mes commentaires
*/
function truc(p1,p2){
    //contenu
}
 
/**
mes commentaires
*/
function chose(){
    //contenu
}
Mais merci de la précision je ne savais pas


N_BaH j'ai utilisé ton code sed, j'ai une erreur me disant
zsh: command not found: nom

Du coup j'ai essayé sans le $(), avec des ``, etc... c'est toujours pareil, donc j'ai essayé de faire ceci :

Code :
cat $i | sed -i.old "/^function/ i\ \n\/**\n* function "$nom" : " $i
La ca n'affiche plus d'erreur mais insere ceci dans mon code :

Code :
1
2
3
4
5
/**
* function ?^??^?? :
function truc(p1,p2){
    //contenu
}
La j'ai vu que mes points de concaténation n'en étaient pas donc j'ai corrigé :
Code :
cat $i | sed -i.old "/^function/ i\ \n\/**\n* function ".$nom." : " $i
Et là j'ai cette erreur :
sed: -e expression n°1, caractère 46: caractères inutiles après la commande

Comment faire une concaténation en sed si c'est ça la solution ?

Cordialement,
Ginger
ginger4957 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 11h09   #5
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 971
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 971
Points : 5 956
Points : 5 956
Salut.

Citation:
Envoyé par ginger4957 Voir le message
N_BaH j'ai utilisé ton code sed, j'ai une erreur me disant
zsh: command not found: nom
T'as mis le shebang pour Bash dans ton script ? #!/bin/bash ?
Pour des scripts vaut mieux quelque chose de "standard" comme Bash, Sh ou encore Ksh.

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 11h27   #6
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 105
Points : 31
Points : 31
Dans mon script j'ai mis cette ligne au tout début :

Mais je teste en copiant directement le bout de code que j'ai mis dans mon premier post. J'ai donc essayé de tester pareillement avec en plus ce bout de code, mais ça donne la même chose.
ginger4957 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 12h05   #7
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 064
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 064
Points : 4 123
Points : 4 123
ce n'est pas mon code, j'ai copié/collé sans relire ce que tu avais écrit, sans uuoc, et avec l'option -i, pour faire une sauvegarde du fichier original.

J'ai un peu de mal à comprendre le but de ton script : il ne s'agit que d'ajouter les "balises" de commentaires avant chaque fonction ?
un avant-après d'un fichier exemple ne serait pas inutile pour comprendre ce que tu souhaites faire...
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/12/2010, 14h41   #8
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 105
Points : 31
Points : 31
Oui c'est exactement ça, et même un peu plus :

fichier de départ :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
function truc(p1,p2){
    //contenu
}
 
//autre code.....
 
function chose(){
    //contenu
}
 
//blabla.....
fichier d'arrivée :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
/**
function truc : 
@param p1 : 
@param p2 : 
mes commentaires
*/
function truc(p1,p2){
    //contenu
}
 
//autre code.....
/**
function chose : 
mes commentaires
*/
function chose(){
    //contenu
}
 
//blabla.....
Le plus, c'est que je voudrais aussi récupérer les parametres des fonctions pour les insérer en commentaires tels que mis dans le fichier d'arrivée. mais je n'en ai pas encore parlé car chaque chose en son temps...
ginger4957 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 00h43   #9
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 064
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 064
Points : 4 123
Points : 4 123
bon, pour répondre à ta question initiale (parce que ce n'est pas corriger ton script qu'il faut faire mais le réécrire) :
Code Exemple :
1
2
3
4
5
6
7
8
9
10
11
12
13
$ cat myFile
foo
bar
baz
$ maVar=bla
$ sed -i.bak "/^bar/i$maVar" myFile
$ cat myFile
foo
bla
bar
baz
$ ls
myFile myFile.bak
pour ton script, soit tu pars sur un
Code :
1
2
3
4
5
find . -type f -name "*.txt" -exec bash -c '
fichier="$1"
recup_vars_dans "$fichier"
sed...
' _  {} \;
soit, si tu ne dois pas chercher dans les sous-répertoires
Code :
1
2
3
4
5
for fichier in *.txt
do
   recup_vars_dans "$fichier"
   sed...
done
on pourrait utiliser cette dernière forme dans une fonction récursive pour descendre dans les sous-répertoires, mais KISS !
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/12/2010, 11h37   #10
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 105
Points : 31
Points : 31
J'ai trouvé cette ligne de code au gré des recherches :

Code :
1
2
3
4
5
6
7
 
#$line est chaque ligne du fichier
while read line
do
    par=$(sed 's#(.*##;s#.)##')
    echo $par
done
exemple de fichier :
Code :
1
2
3
4
5
6
7
8
9
$blabla;
 
function truc(p1,p2,p3){
        //contenu
}
 
function gna(p1){
        //contenu
}
elle affiche ceci :
Code :
1
2
3
4
5
6
7
8
9
$blabla;
 
function truc
        //contenu
}
 
function gna
        //contenu
}
Je voudrais qu'elle affiche ceci :

Code :
1
2
3
truc(p1,p2,p3)
 
gna(p1)

Comme ca je pourrai traiter fonction par fonction et enfin pouvoir faire ce sur quoi je suis bloquée depuis 1 semaine

Une idée de comment y parvenir ?
ginger4957 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 12h54   #11
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 064
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 064
Points : 4 123
Points : 4 123
Code :
1
2
3
4
5
6
7
8
9
10
11
12
echo "function truc(p1,p2,p3){
        //contenu
}
 
function gna(p1){
        //contenu
}" >fichierExemple
 
sed  '/^function\|^$/! d;s/function \([^{]*\){/\1/' fichierExemple
truc(p1,p2,p3)
 
gna(p1)
mais bon te donner ça sans que tu connaisses un peu sed ne peut pas t'aider réellement, voilà donc de la doc qu'il faut lire [...] pour comprendre l'univers de sed
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/12/2010, 14h51   #12
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 105
Points : 31
Points : 31
Bonjour

Je crois comprendre pourquoi je n'arrive pas à insérer la valeur de ma variable... En fait au départ le définie ma variable comme ceci :

Code :
nom=$(echo $begin | cut -d " " -f 2 | cut -d "(" -f 1)
Et ensuite je cherche à insérer ce nom dans mon sed, comme ceci :

Code :
cat $i | sed 's/^function/\n\/**\n* function' $nom ' : \n* @param nomparam : \n* @return\n*\/\nfunction/' > $i
Au départ j'ai testé ca pour voir si ca fonctionne (et ca marche bien) :

Code :
cat $i | sed 's/^function/\n\/**\n* function quelquechose : \n* @param nomparam : \n* @return\n*\/\nfunction/' > $i
Mais en fait l'insertion de la variable ne fonctionne pas parce que je n'ai pas récupéré le nom en sed, mais par les pipes, donc il faut que je le fasse en sed je pense... J'ai donc fait à partir de ton code :

Code :
1
2
3
4
5
6
7
 
#ton code qui recupere truc(p1,p2) ....
part1=$(sed '/^function\|^$/! d;s/function \([^{]*\){/\1/' $i)
echo $part1
 
#essai pour ne récupérer que truc
part2=$(sed '/^function/\2/')
Mais je n'arrive pas à récupérer le mot se trouvant après le mot "function"... Ca ne doit pas être si compliqué que ca pourtant ?

J'ai affiché ma commande dans une variable pour voir ce que ca ecrit :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
#commande
aze="cat $i | sed 's/^function/\n\/**\n* function' $nom ' : \n* @param nomparam : \n* @return\n*\/\nfunction/' > $i"
echo $aze
 
#ce que ca renvoit
cat ./fichier.txt | sed 's/^function/
\/**
* function' hey
truc
gna ' : 
* @param nomparam : 
* @return
*\/
function/' > ./fichier.txt
Cordialement,

Ginger
ginger4957 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2011, 14h59   #13
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 105
Points : 31
Points : 31
Bonjour

J'ai réussi à insérer les noms des fonctions correctement, et presque pour les parametres.

Mon fichier de depart :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
function hey(){
   //contenu
}
 
$blabla;
 
function truc(p1,p2,p3){
        //contenu
}
 
function gna(p1){
        //contenu
}
j'arrive a transformer le fichier comme suis :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
/**
 * function hey :
 * @param p1 : 
 * @param p2 : 
 * @param p3 : 
 * @param p1 : 
 * @return
 */
function hey(){
   //contenu
}
 
$blabla;
 
 
/**
 * function truc :
 * @param p1 : 
 * @param p2 : 
 * @param p3 : 
 * @param p1 : 
 * @return
 */
function truc(p1,p2,p3){
        //contenu
}
 
 
/**
 * function gna :
 * @param p1 : 
 * @param p2 : 
 * @param p3 : 
 * @param p1 : 
 * @return
 */
function gna(p1){
        //contenu
}
Le fichier que je dois obtenir au final (il s'agit d'insérer les bons parametres aux bons endroits) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
/**
 * function hey :
 * @return
 */
function hey(){
   //contenu
}
 
$blabla;
 
 
/**
 * function truc :
 * @param p1 : 
 * @param p2 : 
 * @param p3 : 
 * @return
 */
function truc(p1,p2,p3){
        //contenu
}
 
 
/**
 * function gna :
 * @param p1 : 
 * @return
 */
function gna(p1){
        //contenu
}
Le résultat que j'obtiens à présent je l'obtiens avec ce code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
#!/bin/sh
 
for i in `find . -name "*.txt"`; do
 
	# affiche les fins de commentaires spéciaux trouvés
	reg=`
    awk 'BEGIN {  }
    	/* @return \n *\// { print $0 }
        ' $i
   	`
 
#	echo $reg
 
	# test si on a deja mis un commentaire grace à /**
	if [ ! $reg ]
	then
		nomf=`
		awk 'BEGIN {  }
			/^function/ { ligne=$0 ; 
			sub(/function /,"") ; 
			gsub(/ /,"") ; 
			split($0,tab, /\(/) ; 
			print "tab1 : " tab[1]
			}
		' $i
		`
 
		echo "noms des fonctions : " $nomf
 
		parf=`
		awk 'BEGIN {  }
			/^function/ { ligne=$0 ; 
			sub(/function /,"") ; 
			gsub(/ /,"") ; 
			split($0,tab, /\(/) ; 
			# print "tab2 : " tab[2] ; 
			params=substr(tab[2],0,length(tab[2])-2) ; 
			split(params,tabParams,/\,/) ; 
			for (indice in tabParams){
   	            print tabParams[indice]
        	} ; 
        	# print "ligne : " $ligne
        }
		' $i
		`
 
		echo "parametres des fonctions : " $parf
 
		for j in $nomf; do
 
			cat $i | sed "s/^function* ${j}/\n\/**\n * function ${j} : \n * @return\n *\/\nfunction ${j}/g" > $i
 
		done
 
		for k in $parf; do
 
			cat $i | sed "s/@return/@param ${k} : \n * @return/g" > $i
 
		done
 
	fi
 
done
Quelqu'un aurait il une idée ?

Cordialement,
Ginger
ginger4957 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2011, 06h05   #14
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 064
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 064
Points : 4 123
Points : 4 123
Bonjour,

Te rends-tu compte que le même fichier est lu 5 fois au cours de ton script ?

un simple boucle while read line; do...; done <fichierdevrait te permettre de faire ce que tu veux...
oublie awk et sed (pour l'instant).

si "$line" commence par "function", alors tu découpes la ligne pour récupérer les éléments qui t'intéressent
tu envoies le résultat dans un fichier temporaire
tu envoies la ligne dans le même fichier temporaire
si "$line" ne correspond pas, alors tu l'envoies dans le fichier temporaire
...

mais il ne devrait même pas y avoir autant d'écritures, en fait, tu ne feras que des echo, et à la fin de la boucle while tu enverras tout dans un fichier temporaire, avant d'écraser l'original.

ET, je te le dis encore une fois, on ne fait pas for item in `commande` !
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/01/2011, 12h45   #15
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 105
Points : 31
Points : 31
Bonjour

Merci pour ta réponse, j'ai modifié le for item in `cmd` en ceci :
Code :
1
2
3
4
5
 
fichier=`find . -name "*.txt"`
while read line; do
        #... traitement ...
done
Et je suis en train de voir pour la suite. A bientot




Ginger
ginger4957 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 14h41   #16
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 105
Points : 31
Points : 31
Bonjour

Je cherche à parser en shell ou awk ou autre, ce genre de texte :

Code :
function hey(){- p3){- function gna(p1){-
Je cherche à recuperer chaque partie qui se trouve avant le symbole "-" je ne trouve pas de solution...

Une petite idée ?
ginger4957 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 15h01   #17
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 064
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 064
Points : 4 123
Points : 4 123
bonjour,

Code bash :
1
2
3
4
5
6
$ string="function hey(){- p3){- function gna(p1){-"
$ IFS='-' read -r -a array <<<"$string"
$ printf '%s\n' "${array[@]# }"
function hey(){
p3){
function gna(p1){
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 15h44   #18
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 105
Points : 31
Points : 31
Merci N_BaH

Quelle est la différence entre :
et :

? Ca affiche la même chose... A quoi sert le dièse ?

Sinon ça affiche pas tout le résultat mais seulement le premier... :
ginger4957 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 15h47   #19
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 064
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 064
Points : 4 123
Points : 4 123
ah t'es en /bin/sh
il faudrait utiliser au minimum bash, pour pouvoir utiliser des tableaux/listes.

le # (#<espace>)est censé supprimer l'espace qui apparaît au début des valeurs.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 17h00   #20
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 105
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 105
Points : 31
Points : 31
Merci pour l'explication

Je viens de tester mon code dans un fichier bash au lieu de sh mais ca change rien, je ne recupere que le premier resultat "function hey(){"

Tu es sûr que je ne peux pas utiliser de tableaux en sh ?


EDIT

J'ai une question : quand je veux supprimer un fichier directement en ligne de commande sous la console et que je le recréé après via mon_fichier.sh, ça fonctionne bien ; mais quand j'écris cette commande dans un fichier ça fait quelque chose de bizarre. Je m'explique :
Dans le premier cas, si je supprime sous la console le fichier temp.txt, comme ceci :
ça me le supprime, et quand je le recréé via mon_fichier.sh (que je lance donc sous la console) j'y écris ceci :
Code :
1
2
3
4
5
function
hey(){-
p3){-
function
gna(p1){-
Ca, ça marche bien ;

Mais

quand je tente de supprimer temp.txt directement via mon_fichier.sh, et que ensuite je le recréé ça écrit ceci :
Code :
1
2
3
hey(){--
p3){--
gna(p1){--
Dans mon_fichier.sh, j'ai ecrit ceci afin de supprimer temp.txt :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
if [[ `find "temp.txt"` ]]
then
	`rm temp.txt`
fi
 
> temp.txt
# cest pareil si je fais touch temp.txt
 
 
`chmod 777 temp.txt`
 
echo ${montexte} > temp.txt
Si je fais juste la suppression et que je mets la creation et lecriture en commentaire, que temp.txt existe, ca le supprime bien, et si j'enleve les commentaires et que je relance encore une fois mon_fichier.sh, ca cree le texte correctement, et si je relance encore une fois mon_fichier.sh ca n'ecrit pas ce quil faut dans temp.txt... Ca marche que la premiere fois en fait...

Puis je le recréé comme ceci (toujours dans mon_fichier.sh) :
Code :
1
2
echo ${var} >> temp.txt
# $var etant le texte que j'écris dans temp.txt
Du coup je suppose que ce n'est pas la bonne syntaxe lors de la suppression de temp.txt ? Mais comment trouver la bonne ?
ginger4957 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h04.


 
 
 
 
Partenaires

Hébergement Web