Petit problème de shell
Résolu/Fermé
Mathbenjo
Messages postés
30
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
7 juillet 2010
-
10 févr. 2010 à 14:08
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 10 févr. 2010 à 22:36
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 10 févr. 2010 à 22:36
A voir également:
- Petit problème de shell
- Classic shell windows 10 français - Télécharger - Personnalisation
- Shell pause ✓ - Forum Shell
- Petit colis distribution - Forum Consommation & Internet
- [Sujet Groupé] Shein livraison sans réception ✓ - Forum Consommation & Internet
- Excel trier du plus grand au plus petit - Guide
6 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
10 févr. 2010 à 14:19
10 févr. 2010 à 14:19
Salut,
Il faut des espaces autour des crochets ouvrants et fermants :
Idem pour :
Il faut des espaces autour des crochets ouvrants et fermants :
if [ $file = "./.htaccess" ]
Idem pour :
if [ $1 = "" ]
Mathbenjo
Messages postés
30
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
7 juillet 2010
10 févr. 2010 à 14:36
10 févr. 2010 à 14:36
ok je te remercie.
j'ai galéré un jour pour ca....
Y suffisait de le savoir.....
Par contre ca sert a quoi IFS=' ' ?
Et surtout dans ma liste si j'enleve cela il bug sur les nom de dossier avec espaces.
Mais quand je laisse IFS ma liste est concaténé dans une seule variable file.
Merci
j'ai galéré un jour pour ca....
Y suffisait de le savoir.....
Par contre ca sert a quoi IFS=' ' ?
Et surtout dans ma liste si j'enleve cela il bug sur les nom de dossier avec espaces.
Mais quand je laisse IFS ma liste est concaténé dans une seule variable file.
Merci
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
10 févr. 2010 à 14:56
10 févr. 2010 à 14:56
IFS = Input Field Separators (Séparateur de champs en entrée).
C'est la variable qui définit le séparateur de champs en entrée. Par défaut elle est initialisée avec les caractères <Espace>, <Tabulation> et <Saut de ligne> :
Tu n'as pas besoin de l'initialiser dans la mesure où le caractère d'espacement est déjà renseigné.
Par contre une bonne habitude à prendre c'est de quoter les variables avec des guillemets (double quote).
Si tes noms de fichiers ont des espaces, il faut rajouter dans la commande "find" l'option "-print0" :
for file in `find -type f -print0`
C'est la variable qui définit le séparateur de champs en entrée. Par défaut elle est initialisée avec les caractères <Espace>, <Tabulation> et <Saut de ligne> :
IFS=$' \t\n'
Tu n'as pas besoin de l'initialiser dans la mesure où le caractère d'espacement est déjà renseigné.
Par contre une bonne habitude à prendre c'est de quoter les variables avec des guillemets (double quote).
Si tes noms de fichiers ont des espaces, il faut rajouter dans la commande "find" l'option "-print0" :
for file in `find -type f -print0`
Mathbenjo
Messages postés
30
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
7 juillet 2010
10 févr. 2010 à 15:18
10 févr. 2010 à 15:18
maleuresement cela ne fonctionne pas.
quand je met print cela est toujours concaténé dans une seule variable:
exemple dans mon for:
echo $file
echo "oo"
echo $file
me donne :
./.htpasswd./.htaccess
oo
./.htpasswd./.htaccess
ce que je voudrais obtenir c'est:
./.htpasswd
./.htaccess
oo
./.htpasswd
./.htaccess
vous comprenez? File est concatené.
Merci beaucoup
quand je met print cela est toujours concaténé dans une seule variable:
exemple dans mon for:
echo $file
echo "oo"
echo $file
me donne :
./.htpasswd./.htaccess
oo
./.htpasswd./.htaccess
ce que je voudrais obtenir c'est:
./.htpasswd
./.htaccess
oo
./.htpasswd
./.htaccess
vous comprenez? File est concatené.
Merci beaucoup
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
10 févr. 2010 à 15:22
10 févr. 2010 à 15:22
T'as enlevé le :
IFS=''
??
IFS=''
??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mathbenjo
Messages postés
30
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
7 juillet 2010
10 févr. 2010 à 15:25
10 févr. 2010 à 15:25
oui. Mais avec print cela reste concaténé.
Sans rien cela fonctionne mais par contre si je point vers un dossier qui a des espaces dans les noms cela ne le prend pas en compte et croit que c'est un autre fichier
Sans rien cela fonctionne mais par contre si je point vers un dossier qui a des espaces dans les noms cela ne le prend pas en compte et croit que c'est un autre fichier
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
10 févr. 2010 à 17:18
10 févr. 2010 à 17:18
Essaie avec :
Et sans mettre le "-print" de la commande "find"...
IFS=$'\0'
Et sans mettre le "-print" de la commande "find"...
Mathbenjo
Messages postés
30
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
7 juillet 2010
10 févr. 2010 à 22:31
10 févr. 2010 à 22:31
ok j'y suis arrivé merci beaucoup de ton aide
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 894
10 févr. 2010 à 22:36
10 févr. 2010 à 22:36
Cool ;-))
Comment en fin de compte ?
Comment en fin de compte ?