Savoir si >> fonctionne

Résolu/Fermé
Utilisateur anonyme - 29 oct. 2012 à 16:15
 Utilisateur anonyme - 29 oct. 2012 à 16:55
Bonjour, bonsoir,

Tout est dans le titre, j'aimerais savoir si le >> se fait bien lors de l'envoie de caractères dans un fichier texte.

Quelque chose comme:

if [ echo "plop" >> "chemin_de_mon_texte" ]; then [...] ; fi


Merci :-)

4 réponses

laoshu Messages postés 1231 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 24 mai 2015 350
29 oct. 2012 à 16:21
Bonjour,

Si c'est juste pour savoir si tout c'est bien passé, tu peux essayer ainsi, je pense :

[[ $(echo "plop" >> fichier_texte) ]] && echo "Tout va bien"

ou mieux :
[[ $(echo "plop" >> fichier_texte) ]] || echo "Il y a eu un problème"

Mais vérifie, je me trompe peut etre,
0
Utilisateur anonyme
29 oct. 2012 à 16:35
Coucou,

C'est ce que j'ai fait du coup mais... c'est pas génial.

Le truc c'est que le shell ne renvoie pas de valeur... si ?

Une question, pourquoi tu mets des doubles crochets "[[...]]" ?

Merci ;-)
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 416
29 oct. 2012 à 16:37
Salut,

$ echo "blabla" >> brol && echo "OK" || echo "Pas OK"
OK

$ chmod u-w brol    # Retrait des droits d'écriture

$ echo "blabla" >> brol && echo "OK" || echo "Pas OK"
bash: brol: Permission non accordée
Pas OK

$

0
Coucou Zipe,

Pas d'autres manières ? (hormis aller lire le fichier à la recherche de la chaîne)

♪♪ Slowin' Cleaner development, Windows Optimizer
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 416
29 oct. 2012 à 16:44
Ben de toute façon à part comme dans mon exemple si le fichier n'a pas les droits d'écriture, il n'y a pas trop de raison que ça échoue... même si le fichier n'existe pas, la redirection se fait quand même puisque le fichier est créé automatiquement.
0
Utilisateur anonyme
29 oct. 2012 à 16:45
Ok mais je ne suis pas fan du "&&", comment ça marche ce truc ?

Parce-qu'en programmation tu peux utiliser le return(); pour voir si ce que tu as fait a réussi ou non, pas en Shell :-/
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 416
29 oct. 2012 à 16:48
En shell c'est la variable "$?" qui contient le code retour.
0 = true
1 = false

$ echo "blabla" >> brol ; echo $?
bash: brol: Permission non accordée
1

$ chmod u+w brol 

$ echo "blabla" >> brol ; echo $?
0

$
0
Utilisateur anonyme
29 oct. 2012 à 16:55
Super merci Zipe !
0