Bienvenue visiteur (Inscription |  Connexion)
Qui est en ligne ?
Il y a : 14 utilisateurs en ligne, consultez le détail
Auteur Message
ToMsS
#0 Message posté le : 14-01-2007 à 13:06:40


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 26-10-2006
Nombre de messages : 57
Bonjour


je realise un petit script bash qui permet lorsque je clique sur un fichier de creer un dossier portant le meme nom que le fichier .

mon probleme est le suivant lorsque j'essaye de creer le dossier si le nom comporte des espaces ca ne fonctione pas.

exemple pour le fichier : la voiture rouge.mp3

le dossier creer sera "la"

comment puis-je faire pour gerer les espaces dans les nom ? une commande particuliere ? j'ai trouvé le systeme de pipe sur un sed mais je n'arrive pas a le mettre en place

d'avance merci

-------------------------------------
On est toujours le newbie de quelqu"un.
Moilebigboss
#1 Message posté le : 14-01-2007 à 13:22:45


Naboo


Forum : Inscrit
Association :
Arrivé(e) le : 24-02-2004
Nombre de messages : 2217
Je crois que Ymer disait de faire :
"'LE TEXTE A ESPACE'"


tamiel
#2 Message posté le : 14-01-2007 à 13:31:39


Hobbit


Forum : Inscrit
Association :
Arrivé(e) le : 17-10-2003
Nombre de messages : 1067
mkdir "repertoire a espace"

mkdir 'repertoire a espace'

mkdir repertoire\ a\ espace

-------------------------------------
If you don't know, ask manpage !
ToMsS
#3 Message posté le : 15-01-2007 à 01:30:18


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 26-10-2006
Nombre de messages : 57
Merci , mais j'ai encore un petit probleme , lorsque j'execute cette commande ca fonctionne bien , mon dossier est bien créer ( aussi avec les noms avec espace)

mkdir $HOME/Desktop/"$1"


mais lorsque je veux mettre le chemin du dossier dans une variable et le passer en argument sur une fonction ca ne marche plus


mavariable= $HOME/Desktop/"$1"

mkdir $mavariable

mafonction $mavariable


quelqu"un aurait-il une idée

merci

--Message édité par ToMsS le 15-01-2007 à 01:31:20--


-------------------------------------
On est toujours le newbie de quelqu"un.
Moilebigboss
#4 Message posté le : 15-01-2007 à 07:50:25


Naboo


Forum : Inscrit
Association :
Arrivé(e) le : 24-02-2004
Nombre de messages : 2217
mavariable="$HOME/Desktop/$1"

mkdir $mavariable

mafonction $mavariable



?

--Message édité par Moilebigboss le 15-01-2007 à 07:50:34--
tamiel
#5 Message posté le : 15-01-2007 à 09:28:11


Hobbit


Forum : Inscrit
Association :
Arrivé(e) le : 17-10-2003
Nombre de messages : 1067
L'argument $1 doit être un argument sans espace (l'espace est l'IFS par défaut de bash) .

Si tu veux passer un argument avec espace :

script.sh "argument a plusieurs espaces"
et là tu peux appeler $1 correctement.

OU

script.sh argument à plusieurs arguments
et là tu récupères tous les arguments averc $@ .

-------------------------------------
If you don't know, ask manpage !
ToMsS
#6 Message posté le : 15-01-2007 à 11:17:44


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 26-10-2006
Nombre de messages : 57
okok donc ce que je veux faire n'est pas realisable et est-il possible de formater un texte a espace en remplacant des espaces par des "_" ?


merci a vous



--Message édité par ToMsS le 15-01-2007 à 11:21:02--


-------------------------------------
On est toujours le newbie de quelqu"un.
tamiel
#7 Message posté le : 15-01-2007 à 12:06:43


Hobbit


Forum : Inscrit
Association :
Arrivé(e) le : 17-10-2003
Nombre de messages : 1067
echo $TEXT | sed s/" "/"_"/g

-------------------------------------
If you don't know, ask manpage !
lenounoursmignon
#8 Message posté le : 15-01-2007 à 15:55:33


Jedi


Forum : Inscrit
Association :
Arrivé(e) le : 03-08-2003
Nombre de messages : 4073
ToMsS a écrit :


okok donc ce que je veux faire n'est pas realisable et est-il possible de formater un texte a espace en remplacant des espaces par des "_" ?


merci a vous


qu'est-ce qui n'est pas faisable ??

ce code marche très bien
mavariable="$HOME/Desktop/$1"
mkdir "$mavariable"


il faut juste, comme le dit tamiel, que l'argument passé à ton script soit donné entre " ".

exemple :
mon_script "le repertoire a creer"
ET PAS CA :
mon_script le repertoire a creer


donc, il n'y a aucun problème pour faire ce que tu veux à priori

-------------------------------------
Troisième loi de Greer :
Un programme informatique ne fait jamais ce que vous voudriez qu'il fasse, ... il fait seulement ce que vous lui dites de faire.