- Modifié
Bonjour,
je suis sur un script qui fait une recherche dans un répertoire un peu spéciale, je m'explique :
à partir d'une chaine de caractères entré en argument (./script chaine1 chaine2 chaine3 ), le script cherche dans un répertoire les chaines correspondante à un fichier existant. (par exemple : il retourne "la chaine correspondante est : chaine1 chaine3")
au départ c'est quelque chose de simple en utilisant la commande ls | grep
donc : ls | grep chaine1 | grep chaine2
si chaine2 est introuvable il reviens en arrière et replace "| grep chaine2" par "| grep chaine3"
et bein ça marche pas, mon problème (je pense ) qu'il est dans l'exécution de la commande ls | grep ...
voici le script :
ls: | grep doc : Aucun fichier ou répertoire de ce type
Merci pour votre aide
je suis sur un script qui fait une recherche dans un répertoire un peu spéciale, je m'explique :
à partir d'une chaine de caractères entré en argument (./script chaine1 chaine2 chaine3 ), le script cherche dans un répertoire les chaines correspondante à un fichier existant. (par exemple : il retourne "la chaine correspondante est : chaine1 chaine3")
au départ c'est quelque chose de simple en utilisant la commande ls | grep
donc : ls | grep chaine1 | grep chaine2
si chaine2 est introuvable il reviens en arrière et replace "| grep chaine2" par "| grep chaine3"
et bein ça marche pas, mon problème (je pense ) qu'il est dans l'exécution de la commande ls | grep ...
voici le script :
#!/bin/bash
cd /documents
cmd="| grep $1 "
var="$1"
shift
cmdBk="$cmd"
while [ $# -ne 0 ]
do
#exec de la commande composée
ls "$cmd"
if [[ $? -eq 0 ]]
then
var+=" "$1
cmdBk="$cmd"
shift
cmd+="| grep $1"
else
cmd="$cmdBk"
shift
fi
done
echo "la chaine correspondante est : $var"
./script doc fr eng electrique ls: | grep doc : Aucun fichier ou répertoire de ce type
Merci pour votre aide