Bash écriture dans un fichier

Résolu/Fermé
freeman43 Messages postés 110 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 10 décembre 2009 - 23 janv. 2009 à 10:58
freeman43 Messages postés 110 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 10 décembre 2009 - 23 janv. 2009 à 11:37
Bonjour,

j'ai un script bash qui doit écrire dans un fichier afin de pouvoir caculer une différence.
Voila mon script:

#!/bin/sh
ref=$(cat /usr/share/cacti/site/scripts/essai.txt)
cacti=`snmpget -v1 $1 -c public $2|cut -f 4 -d " "`
imp=$(($cacti-$ref))
snmpget -v1 $1 -c public $2|cut -f 4 -d " " >/usr/share/cacti/site/scripts/essai.txt
echo "imp:$imp"


or la variable ref et toujours la meme car la commande suivante ne fonctionne pas.

snmpget -v1 $1 -c public $2|cut -f 4 -d " " >/usr/share/cacti/site/scripts/essai.txt

or j' ai essayer la commande suiva,te à la place:

echo "$cacti" >/usr/share/cacti/scripts/essai.txt

et celle-ci ne marche pas non plus.

D'où peut venir le problème.
Merci de bien vouloir m'aider.
A voir également:

4 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
23 janv. 2009 à 11:03
Salut.
Je ne caonnais pas toute ces commande, mais je sais qu'il y a une option qui dit que '>' ne peut écraser un fichier déjà existant.
Pour être sur, fait un rm /usr/share/cacti/site/scripts/essai.txt
vérifie tes droits d'écriture
0
freeman43 Messages postés 110 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 10 décembre 2009 16
23 janv. 2009 à 11:12
le '>' permet de supprimer toutes les données du fichier et d'y écrire les données qui ont était mise avant le >.
Mes droit en écriture sont bon car j'ai fait un chmod 777 sur mon fichier pour étre certain que sa fonctionne.

ps: se script s'éxecute via un soft qui appriori n'accepte pas l'écriture dans un fichier via la commande écho. Comment puije écrire dans se fichier quand même.
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
23 janv. 2009 à 11:31
l'option, c'est
set -o noclobber
chez moi, impossible d'écraser un fichier existant.
Il faut essayer de comprendre pourquoi ta commande ne fonctionne pas.
Est-ce que tout les rpéertoires ont un droit en x ?
Si tu essai en dur d'écrire dans le fichier il dit quoi ?
echo essai >/usr/share/cacti/site/scripts/essai.txt
0
freeman43 Messages postés 110 Date d'inscription mardi 9 janvier 2007 Statut Membre Dernière intervention 10 décembre 2009 16
23 janv. 2009 à 11:37
je peux écrire ne dur dans mon fichier sans aucun probléme et même la commande echo blabla >/usr/shar/cacti/site/scripts/essai.txt marche.

Mais lorsque se script et eécuter par l'application celui-ci n'écrit pas dedans.
Je ne veut pas utiliser la commande set car cela va me definir une variable d environnent or ce script devra par la suite gérer plusieurs équipement réseau.
0