Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
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 12/02/2010, 11h33   #1
Invité de passage
 
Étudiant
Inscription : juin 2008
Messages : 12
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2008
Messages : 12
Points : 0
Points : 0
Envoyer un message via MSN à tipié
Par défaut [BASH]-mettre contenu fichier dans variable

Bonjour,
J'ai un fichier contenant une commande rsync et une variable rsync dans mon script bash

J'aimerai savoir comment faire pour mettre le contenu du fichier dans la variable

J'ai essayé rsync < /Donnees/RSYNC/rsync.txt
mais quand j'exécute $rsync
il me met qu'il y a une erreur de syntaxe pour la commande rsync et qu'il faut voir le man de rsync

Voilà :-)
J'espère que quelqu'un pourra m'aider
tipié est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2010, 17h17   #2
Membre éprouvé
 
Avatar de Beniou
 
Homme
Inscription : novembre 2009
Messages : 320
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : novembre 2009
Messages : 320
Points : 443
Points : 443
Bonjour,

N'utilises pas de variables qui porte le même nom qu'une commande existante car ici le shell redirige ton le contenu de ton fichier dans la commande rsync et non ta variable. De plus, cela sera plus clair pour toi et pour ceux qui reliront ton script...

Si tu veux récupérer le contenu d'un fichier texte pour la mettre dans une variable :
Code :
1
2
 
var=`cat fichier.txt`
Si ensuite tu veux exécuter cette variable parce qu'elle contient une commande :
Exemple sur ton rsync :
Code :
1
2
 
cmd=`cat /Donnees/RSYNC/rsync.txt`;$cmd
ou dans un script sur plusieurs lignes :
Code :
1
2
3
 
cmd=`cat /Donnees/RSYNC/rsync.txt`
$cmd

Dernière modification par Beniou ; 12/02/2010 à 17h34.
Beniou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2010, 18h44   #3
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 896
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 896
Points : 3 676
Points : 3 676
ce sera plus rapide ainsi :
Code :
1
2
cmd="$(</Donnees/RSYNC/rsync.txt)"
$cmd
et ça ne fait pas d'uuoc en Bash.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2010, 10h27   #4
Membre éprouvé
 
Avatar de mptijr
 
Étudiant
Inscription : juin 2007
Messages : 403
Détails du profil
Informations personnelles :
Localisation : Côte d'Ivoire

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2007
Messages : 403
Points : 455
Points : 455
Envoyer un message via MSN à mptijr Envoyer un message via Yahoo à mptijr
Beniou : ton explication est plus claire car je pense que Tipié doit être un débutant en programmation bash.
mptijr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2010, 07h05   #5
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 896
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 896
Points : 3 676
Points : 3 676
Par défaut en Bash

L'explication de Beniou serait plus valable s'il ne faisait pas d'uuoc (j'insiste, car il faut en finir avec ça en Bash).
C'est un pléonasme: ça semble utile pour expliquer rapidement le fonctionnement du pipe, mais ce n'est pas une pratique à prodiguer pour un usage courant du Bash.


même/surtout les débutants ont droit à ce que ne leur soit pas donné, comme point de départ, des c.../erreurs.

...
Voilà, maintenant, j'suis tout énervé !

--
les uuoc sont un non-sense non drôle !

Dernière modification par N_BaH ; 16/02/2010 à 07h29.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2010, 17h13   #6
Membre éprouvé
 
Avatar de Beniou
 
Homme
Inscription : novembre 2009
Messages : 320
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : novembre 2009
Messages : 320
Points : 443
Points : 443
Oula mon but n'était pas d'énerver des personnes dans l'assemblée...

Effectivement, je comprends mieux maintenant ce qu'est l'uuoc. Merci N_BaH.
Beniou 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 +1. Il est actuellement 15h45.


 
 
 
 
Partenaires

Hébergement Web