Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2566 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Problème de compréhension avec un ligne de shell

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de compréhension avec un ligne de shell

n°1503138
btvteam
Posté le 15-01-2007 à 14:53:52  profilanswer
 

Avant toute chose bonjour à tous !
 
Alors voila mon problème:  
J'ai un devoir dans lequel il y a une serie d'instructions Shell. Jusque là tout va bien!
Mais je butte sur une ligne en particulier :
 

Citation :

source=`echo $1 | sed 's/\//\\\\\//g'`; shift


 
Voila je me demandais d'une part:
-Est ce que source est une variable?
-Mais surtout qu'est ce que veut bien dire sed 's/\//\\\\\//g'` ?
Je sais que les antislashs servent à distinguer un caractère spécifique au Shell, mais du coup je n'arrive pas bien à saisir le sens de cette instruction sed...
 
Merci d'avance pour votre aide !  :)  

mood
Publicité
Posté le 15-01-2007 à 14:53:52  profilanswer
 

n°1503202
ZeBix
edit > preview
Posté le 15-01-2007 à 16:06:25  profilanswer
 

Citation :

-Est ce que source est une variable?


ça en a tout l'air :)
 

Citation :

-Mais surtout qu'est ce que veut bien dire sed 's/\//\\\\\//g'` ?


Un peu de googling ne fait pas de mal :)  
 
En substance c'est un remplacement, et la succession de slashes te définit ce qui change (pas envie de la décortiquer hehe)

n°1505220
Sve@r
Posté le 19-01-2007 à 19:03:38  profilanswer
 

btvteam a écrit :

Citation :

source=`echo $1 | sed 's/\//\\\\\//g'`


 
Voila je me demandais d'une part:
-Est ce que source est une variable?


Syntaxe de création/affectation d'une variable shell: nom=valeur
Cela correspond à la syntaxe donc oui
 

btvteam a écrit :

-Mais surtout qu'est ce que veut bien dire sed 's/\//\\\\\//g'` ?


man sed !!!
 

btvteam a écrit :

Je sais que les antislashs servent à distinguer un caractère spécifique au Shell, mais du coup je n'arrive pas bien à saisir le sens de cette instruction sed...


 
Ben ça se décortique !!!

  • Première chaîne (celle qui est après le premier "/" et avant le 2° "/" non protégé): \/. Le "slash" est protégé par le "backslash" donc il est traité comme caractère normal donc ça va prendre chaque "/" de ton $1
  • Deuxième chaîne (celle qui est après le 2° "/" et avant le "/g" ): \\\\\/

Il y a 2 groupes de "\\" et un groupe de "\/". Chaque "backslash" permet de rendre le suivant "caractère normal". Au final ça remplacera chaque "slash" de "$1" par "backslash bachslash slash". Rien de bien compliqué...
 
T'as un très bon tuto de shell ici http://fr.lang.free.fr/cours/Shell_v1.4.pdf qui explique bien le mécanisme de protection au chapitre VI...


Message édité par Sve@r le 19-01-2007 à 19:06:54

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Problème de compréhension avec un ligne de shell

 

Sujets relatifs
Comment supprimer ligne vide en vbs?{flash 8} probleme d'arrêt sur un bouton
Problème avec requete SELECT .. WHEREProblème java sous Firefox, ok sous IE
Compréhension d'une ligne[FLASH 8]probleme lien interne a un site flash
problème d'ip avec phpOpérations matrices problème structure pointeur
probleme de code php pour atcivé un bouton desactivé 
Plus de sujets relatifs à : Problème de compréhension avec un ligne de shell


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR