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 21/10/2007, 22h02   #1
Membre confirmé
 
Avatar de Chatbour
 
Étudiant
Inscription : septembre 2006
Messages : 427
Détails du profil
Informations personnelles :
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2006
Messages : 427
Points : 263
Points : 263
Par défaut commande test avec les expressions régulières

Salut à tous

Comment utiliser les expressions régulières dans la commande test..
J'essaye de faire un script qui déplace tous les fichiers du répertoire courant, mais je ne trouve pas comment vérifier si un fichier n'est mon fichier script :

Code :
1
2
3
4
5
6
7
for fichier in *
do
  if test "./"$fichier"$" = $0
  then
    ...
  fi
done
par "./"$fichier"$" je veux exprimer le fait que $0 a une valeur comme "./mon_script" ou "/home/.../mon_script"..

Merci d'avance..
Chatbour est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2007, 23h49   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 451
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 451
Points : 7 563
Points : 7 563
Avec quel shell ?
As-tu essayé ceci (ksh) ?
Code :
[[ "$0" == "/*/${fichier}" ]]
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 07h29   #3
Membre confirmé
 
Avatar de Chatbour
 
Étudiant
Inscription : septembre 2006
Messages : 427
Détails du profil
Informations personnelles :
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2006
Messages : 427
Points : 263
Points : 263
Merci al1_24

mais [[ "$0" == "/*/${fichier}" ]] ne marche pas..

je travaille sous bash..

sous bash $0 me renvoie " ./mon_script " si le chemin n'est pas dans le PATH, et "./home..././mon_script " si le chemin est dans le PATH..

Je cherche à exprimer l'expression régulière "./mon_script$" dans la comande test..
Chatbour est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 11h16   #4
LLB
Membre Expert
 
Inscription : mars 2002
Messages : 946
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 946
Points : 1 085
Points : 1 085
Test ne gère pas les expressions rationnelles (cf le man), même si certains shells l'implémentent peut-être.

Utilise plutôt grep.
LLB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 13h15   #5
Membre confirmé
 
Avatar de Chatbour
 
Étudiant
Inscription : septembre 2006
Messages : 427
Détails du profil
Informations personnelles :
Localisation : Tunisie

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2006
Messages : 427
Points : 263
Points : 263
J'ai fini par faire :

Code :
1
2
3
4
5
6
7
for fichier in *
do
  if [ $0 = ./"$fichier" -o $0 = "$(pwd)/$fichier" ]
  then
    ...
  fi
done
Merci pour votre aide
Chatbour 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 06h47.


 
 
 
 
Partenaires

Hébergement Web