bash: if, test et *

Le
julien therier
--0-180379411-1225149778=:61492
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Bonsoir,

Depuis mon arrivée sur Linux, je cherche à me familiariser aux sh=
ell en lieu et place du C.



Je cherche à faire un truc tout simple en bash mais pourtant je butte =
depuis des heures sans trouver de solution.



Je veux programmer une boucle qui teste si des fichiers ayant la même =
racine existent:

-

code

-

if [[ -f /tmp/fichier.* ]]

then echo "Il existe déjà une/des copie/s de ce fichier"

exit -1

fi

-



un ls /tmp/fichier.* marche:

fichier.5678 fichier.6782 fichier.9854



un test sur le nom entier des fichiers également:

[[ -f /tmp/fichier.6782 ]] ; echo $?


0



Mais rien pour ce que je recherche. Une idée?



Merci d'avance



Julien
--0-180379411-1225149778=:61492
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="=
top" style="font: inherit;">Bonsoir,<br><br>Depuis mon arrivée sur L=
inux, je cherche à me familiariser aux shell en lieu et place du C.<br=
>
<br>
Je cherche à faire un truc tout simple en bash mais pourtant je butte =
depuis des heures sans trouver de solution.<br>
<br>
Je veux programmer une boucle qui teste si des fichiers ayant la même =
racine existent:<br>
-<br>
code<br>
-<br>
if [[ -f /tmp/fichier.* ]]<br>
then echo "Il existe déjà une/des copie/s de ce fichier"<br>
exit -1<br>
fi<br>
-<br>
<br>
un ls /tmp/fichier.* marche:<br>
fichier.5678 fichier.6782 fichier.9854<br>
<br>
un test sur le nom entier des fichiers également:<br>
[[ -f /tmp/fichier.6782 ]] ; echo $?<br>
0<br>
<br>
Mais rien pour ce que je recherche. Une idée?<br>
<br>
Merci d'avance<br>
<br>
Julien</td></tr></table><br>
--0-180379411-1225149778=:61492--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Edi Stojicevic
Le #17666421
* Edi Stojicevic
[..]
Ma solution en utilisant un array et en vérifiant chacune des fichier s :

#!/bin/bash

list=( `ls` )

for i in ${!list[@]}
do
if [[ ${list[i]} =~ ^fichier.* ]]
then
echo "il existe une/des copie/s de ce fichier"
fi
done

Ceci marche avec bash 3.2 !



Au fait, il existe une liste de diffusion dédiée à la programmation en
shell :

http://debianworld.org/shellscript-fr

@+
--
. ''`. (___/) E d i S T O J I C E V I C
: :' : (='.'=) http://www.debianworld.org
`. `~' (")_(") GPG: 0x1237B032
`-

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Edi Stojicevic
Le #17666411
* julien therier
Bonsoir,



Salut,

Depuis mon arrivée sur Linux, je cherche à me familiariser aux shel l en lieu et place du C.

Je cherche à faire un truc tout simple en bash mais pourtant je butte depuis des heures sans trouver de solution.

Je veux programmer une boucle qui teste si des fichiers ayant la même racine existent:

----------

code

----------

if [[ -f /tmp/fichier.* ]]

then echo "Il existe déjà une/des copie/s de ce fichier"

exit -1

fi

----------



Ma solution en utilisant un array et en vérifiant chacune des fichiers :

#!/bin/bash

list=( `ls` )

for i in ${!list[@]}
do
if [[ ${list[i]} =~ ^fichier.* ]]
then
echo "il existe une/des copie/s de ce fichier"
fi
done

Ceci marche avec bash 3.2 !

--
. ''`. (___/) E d i S T O J I C E V I C
: :' : (='.'=) http://www.debianworld.org
`. `~' (")_(") GPG: 0x1237B032
`-

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Publicité
Poster une réponse
Anonyme