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 20/02/2008, 00h35   #1
Invité régulier
 
Inscription : novembre 2007
Messages : 65
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 65
Points : 7
Points : 7
Par défaut Redirection de l'entrée standard

ma question porte sur la redirection de l'entree standard avec le shell.

en effet chaque commande prend donc une entree standard (par defaut le clavier) et une entreer sortie (par defaut l'ecran).

donc si je fait
more < fichier il va lire le contenu d'un fichier
(equivalent à: more fichier)
pour la commande more j'ai bien compris la rediredtion mais pour une commande comme


ls ou cd :
quelqu'un peut me donner un exemple de rediretion d'entree (pas de sortie)

merci d'avance pour vos reponses je pense que certaines choses vont pouvoir se debloquer.
steeve93800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 08h13   #2
Membre expérimenté
 
Avatar de iblis
 
Inscription : janvier 2007
Messages : 510
Détails du profil
Informations personnelles :
Âge : 45

Informations forums :
Inscription : janvier 2007
Messages : 510
Points : 510
Points : 510
Envoyer un message via Yahoo à iblis
Beaucoup de commandes lisent par défaut l'entrée standard (mais pas toutes, exemples : cd, pwd, date...).

C'est le cas (au hasard) de grep, sed, tail, sort ... La plupart peuvent prendre un fichier comme argument. Par exemple grep bash file et grep bash < file sont équivalent; ou sed 's/sh/bash/' file et sed 's/sh/bash/' < file.

La redirection d'entrée prend tout son sens avec les pipes (tuyaux): la sortie standard d'une commande est raccordée à l'entrée standart de la suivante. Quelques exemples en vrac.

Code :
1
2
3
ps aux | grep ^root	#liste tous les processus de root
ls -1 | sed 's/htm$/html/'	# liste les fichiers avec html à la place de htm 
ps aux | grep "$(who am i | awk '{print $1}')"	# liste tous les processus de l'utilisateur courant
Il est aussi possible de transformer l'entrée standard en arguments de ligne de commande avec xargs.

Code :
ls *.sh | xargs chmod a+x	# rend tous les fichiers sh du répertoire courant exécutables
iblis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 13h40   #3
Invité régulier
 
Inscription : novembre 2007
Messages : 65
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 65
Points : 7
Points : 7
donc si j'ai bien compris cd et ls ne lisent pas par defaut l'entree standard c'est sa ?

car c'est ls qui me posait probleme. comment donc savoir si une commande lit l'entree standard par defaut?

est ce peut etre quand une commande demande a lire quelque chose ou un fichier?

merci pour ta reponse iblis
steeve93800 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 03h16.


 
 
 
 
Partenaires

Hébergement Web