Bonjour à tous,
J'essaie de créer des liens symboliques à partir d'un fichier. J'utilise
le script suivant:
#!/bin/bash
cd /home/francois/Images/test
rm -f *
for i in $( cat /home/francois/config/liste ); do
echo $i
ln -s "$i" .
done
Le fichier "liste" contient donc une liste de fichier pour lequel je
veux créer des liens symboliques dans le fichier "test". Le but est
d'utiliser ensuite ce dossier comme source d'images de fond d'écran avec
KDE. Le problème est que çà ne fonctionne pas pour les noms de fichier
contenant des espaces.
Quelqu'un connaît-il une solution à mon problème ?
Merci d'avance,
Tout dépend de ce qu'on entend par strictement. Ça va donner le meme résultat (et encore, si le chemin d'accès que tu donnes à cat commence par un --, tu vas avoir des surprises), mais sous le capot, il ne se passe pas la meme chose. Classiquement, on appelle ça un uuoc (useless use of cat).
Ok. :-)
Je pose la question car j'ai voulu faire des tests et j'ai eu des étrangetés que je n'arrive pas à reproduire (du genre en tapant dans l'interpréteur « cat toto | while read ; do <ENTER> » j'avais un nouveau prompt qui s'affichait comme si la commande que j'avais commencée à taper était achevée).
Ça, c'est parce que le do n'est pas terminé. Comme le shell est gentil, plutot que de te jeter avec un syntax error, il te prompte pour la suite de la boucle.
Ah mais justement, j'ai pas dû bien m'exprimer, le shell après le « do » m'avait mis le prompt « $ », c'est-à-dire le prompt qui dit "ok, tu as fini ta commande on passe à la suite", mais pas le prompt « > » (celui qui dit "vas-y donne moi la suite de ton instruction").
Au début, je me suis dit "il est tard, tu dois être fatigué". Mais aujourd'hui, j'ai pu reproduire cette étrangeté. Voici une copie d'écran :
1) Quand j'appuie sur ENTER au niveau de la pastille rouge, je me retrouve avec le prompt « $ ». Impossible de continuer la suite de ma boucle ?
2) Deuxième tentative, cette fois-ci je peux aller jusqu'au « done », mais quand je tape ENTER au niveau de la pastille verte, il me demande de continuer la boucle (avec un prompt « > ») alors que celle-ci est finie ?
3) Troisième tentative, là ça marche comme attendu (avec un ENTER au niveau de la pastille bleue) ? Et par la suite impossible de reproduire ces phénomènes.
Si vous avez des explications à ces étrangetés, ça m'intéresse. Je suis sous Debian Squeeze et j'ai utilisé le Gnome-terminal.
-- François Lafont
Le 09/08/2011 10:47, Luc Habert a écrit :
Tout dépend de ce qu'on entend par strictement. Ça va donner le meme
résultat (et encore, si le chemin d'accès que tu donnes à cat commence par
un --, tu vas avoir des surprises), mais sous le capot, il ne se passe pas
la meme chose. Classiquement, on appelle ça un uuoc (useless use of cat).
Ok. :-)
Je pose la question car j'ai voulu faire des tests et j'ai eu des
étrangetés que je n'arrive pas à reproduire (du genre en tapant dans
l'interpréteur « cat toto | while read ; do <ENTER> » j'avais un nouveau
prompt qui s'affichait comme si la commande que j'avais commencée à
taper était achevée).
Ça, c'est parce que le do n'est pas terminé. Comme le shell est gentil,
plutot que de te jeter avec un syntax error, il te prompte pour la suite de
la boucle.
Ah mais justement, j'ai pas dû bien m'exprimer, le shell après le « do »
m'avait mis le prompt « $ », c'est-à-dire le prompt qui dit "ok, tu as
fini ta commande on passe à la suite", mais pas le prompt « > » (celui
qui dit "vas-y donne moi la suite de ton instruction").
Au début, je me suis dit "il est tard, tu dois être fatigué". Mais
aujourd'hui, j'ai pu reproduire cette étrangeté. Voici une copie d'écran :
1) Quand j'appuie sur ENTER au niveau de la pastille rouge, je me
retrouve avec le prompt « $ ». Impossible de continuer la suite de ma
boucle ?
2) Deuxième tentative, cette fois-ci je peux aller jusqu'au « done »,
mais quand je tape ENTER au niveau de la pastille verte, il me demande
de continuer la boucle (avec un prompt « > ») alors que celle-ci est finie ?
3) Troisième tentative, là ça marche comme attendu (avec un ENTER au
niveau de la pastille bleue) ? Et par la suite impossible de reproduire
ces phénomènes.
Si vous avez des explications à ces étrangetés, ça m'intéresse. Je suis
sous Debian Squeeze et j'ai utilisé le Gnome-terminal.
Tout dépend de ce qu'on entend par strictement. Ça va donner le meme résultat (et encore, si le chemin d'accès que tu donnes à cat commence par un --, tu vas avoir des surprises), mais sous le capot, il ne se passe pas la meme chose. Classiquement, on appelle ça un uuoc (useless use of cat).
Ok. :-)
Je pose la question car j'ai voulu faire des tests et j'ai eu des étrangetés que je n'arrive pas à reproduire (du genre en tapant dans l'interpréteur « cat toto | while read ; do <ENTER> » j'avais un nouveau prompt qui s'affichait comme si la commande que j'avais commencée à taper était achevée).
Ça, c'est parce que le do n'est pas terminé. Comme le shell est gentil, plutot que de te jeter avec un syntax error, il te prompte pour la suite de la boucle.
Ah mais justement, j'ai pas dû bien m'exprimer, le shell après le « do » m'avait mis le prompt « $ », c'est-à-dire le prompt qui dit "ok, tu as fini ta commande on passe à la suite", mais pas le prompt « > » (celui qui dit "vas-y donne moi la suite de ton instruction").
Au début, je me suis dit "il est tard, tu dois être fatigué". Mais aujourd'hui, j'ai pu reproduire cette étrangeté. Voici une copie d'écran :
1) Quand j'appuie sur ENTER au niveau de la pastille rouge, je me retrouve avec le prompt « $ ». Impossible de continuer la suite de ma boucle ?
2) Deuxième tentative, cette fois-ci je peux aller jusqu'au « done », mais quand je tape ENTER au niveau de la pastille verte, il me demande de continuer la boucle (avec un prompt « > ») alors que celle-ci est finie ?
3) Troisième tentative, là ça marche comme attendu (avec un ENTER au niveau de la pastille bleue) ? Et par la suite impossible de reproduire ces phénomènes.
Si vous avez des explications à ces étrangetés, ça m'intéresse. Je suis sous Debian Squeeze et j'ai utilisé le Gnome-terminal.