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 24/02/2010, 15h51   #1
Nouveau Membre du Club
 
Étudiant
Inscription : mai 2009
Messages : 110
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2009
Messages : 110
Points : 27
Points : 27
Par défaut récuperer un affichage du shell

Bonjour,
Je commence juste à m'initier avec linux, ma question pourra donc être très basic mais j'ai pas su le faire!
en fait voila je m'explique, je veux récuperer un affichage du shell.
par exemple récuperer l'adresse ip de ma machine en tapant "ifconfig" et la mettre dans un fichier ou une variable.
un autre problème c'est lorsque je tape cette commande:
Code :
sed -e '3d' -e '4d' mon_fichier
mon_fichier ne se modifie pas mais ya juste l'affichage qui est différent! je pourai éventuelement récuperer le texte affiché et l'utilisé pour remplacer le contenu de mon_fichier.
Sinon, si vous porposez une autre méthode ou sela se fait automatiquement je suis prenante
Merci à tous.
Djawida est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2010, 16h15   #2
Membre chevronné
 
Inscription : septembre 2007
Messages : 685
Détails du profil
Informations personnelles :
Âge : 48
Localisation : Suisse

Informations forums :
Inscription : septembre 2007
Messages : 685
Points : 723
Points : 723
Bonjour,

En fait, tu veux récupérer le résultat d'une (suite de) commande(s) pour mettre dans un fichier ou une variable. En Bash:
Code :
1
2
3
var=$(ifconfig eth0)
ifconfig eth0 > fichier
sed -i '...' fichier
__________________
Un problème bien posé est déjà résolu (H. Bergson).
jmelyn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2010, 16h49   #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
Citation:
Envoyé par Bela Lugosi
bevare, bevare... !
la sortie de ifconfig peut changer selon l'environnement :, sous cron (par exemple) ça peut changer...!
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2010, 16h53   #4
Nouveau Membre du Club
 
Étudiant
Inscription : mai 2009
Messages : 110
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2009
Messages : 110
Points : 27
Points : 27
Citation:
Envoyé par jmelyn Voir le message
Bonjour,

En fait, tu veux récupérer le résultat d'une (suite de) commande(s) pour mettre dans un fichier ou une variable. En Bash:
Code :
1
2
3
var=$(ifconfig eth0)
ifconfig eth0 > fichier
sed -i '...' fichier
Merci pour ta réponse.
Mais en fait, c'est pas exactement ce que je veux car je veux pas tout le ifconfig eth0 mais juste l'adresse ip.
pour le sed voila ce que j'ai:
Code :
1
2
# sed -e '3d' -e '4d' mon_fichier > mon_fichier
mon_fichier: File exists.
Djawida est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2010, 16h55   #5
Nouveau Membre du Club
 
Étudiant
Inscription : mai 2009
Messages : 110
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2009
Messages : 110
Points : 27
Points : 27
Citation:
Envoyé par N_BaH Voir le message
la sortie de ifconfig peut changer selon l'environnement :, sous cron (par exemple) ça peut changer...!
voici la sortie de mon ifconfig:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:01:02:03:04:10  
          inet addr:10.250.107.240  Bcast:10.250.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1200  Metric:1
          RX packets:763755 errors:0 dropped:863 overruns:0 frame:0
          TX packets:762682 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:890530555 (849.2 MiB)  TX bytes:902762004 (860.9 MiB)
          Interrupt:11 Base address:0x4000 
 
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:19 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1792 (1.7 KiB)  TX bytes:1792 (1.7 KiB)
Djawida est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2010, 18h49   #6
Membre Expert
 
Homme
budget et contrôle de gestion
Inscription : décembre 2006
Messages : 865
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 44
Localisation : France

Informations professionnelles :
Activité : budget et contrôle de gestion
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2006
Messages : 865
Points : 1 320
Points : 1 320
Salut,

Ma contribution à l'effort de guerre
Code Commande :
ifconfig | grep Bcast | cut -d ':' -f2,2 | cut -d ' ' -f1,1
Code Résultat :
10.250.107.240
__________________
Winnt

C'est en Linuxant qu'on devient .... geek

Intel Core i5 750 / 8 Go ram / Hdd 2 To / NVIDIA GeForce GTS 250 1Go sous Gentoo.
Dual core E6300 / 2Go ram / Hdd 1 To / Ati 9800XT sous Debian Testing.
Atom N330 / 4Go ram / Hdd 5To / intel GMA 950 sous Debian Testing
Winnt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2010, 19h28   #7
Membre chevronné
 
Inscription : septembre 2007
Messages : 685
Détails du profil
Informations personnelles :
Âge : 48
Localisation : Suisse

Informations forums :
Inscription : septembre 2007
Messages : 685
Points : 723
Points : 723
D'abord, pour obtenir ton adresse IP, tu peux faire:
Code :
ifconfig eth0 | awk '/^ *inet / {print substr($2, 6)}'
Ensuite, si tu lis ce que je t'ai écrit, tu verras que tu n'as pas correctement retranscrit la commande sed: l'option -i indique inline, c'est-à-dire dans le fichier (même si en fait un fichier temporaire est créé). Mais on ne met jamais les données de sortie dans le même fichier que les données d'entrée.
__________________
Un problème bien posé est déjà résolu (H. Bergson).
jmelyn 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 15h10.


 
 
 
 
Partenaires

Hébergement Web