GNT sans publicité, site mobile, fonctionnalitées exclusives...

traiter les espaces dans un nom de fichier (zsh)

Le
Une Bévue
le $1 d'un script en zsh, est un (futur) nom de fichier comportant des
espaces, par exemple "apt-get install converseen".
mon script transforme ce $1 en y préfixant la date et postfixant ".txt",
ce qui donne qqc du genre :
"/path/to/11-12-21--06-08--apt-get install converseen.txt".

appellons ça la variable $datedfile

mon script fait un (avec le /path/to) :

touch "$datedfile"

qui marche impec.

par contre, ensuite, le script est sensé ouvrir ce fichier dans Sublime
Text 2 par la commande :

/usr/bin/sublime-text-2 "${DATEDFILE}"

et là, Sublime Text 2 m'ouvre 3 fichiers :
11-12-21--06-08--apt-get
install
et
converseen.txt



si je protège les espaces par :
"'/path/to/11-12-21--06-08--apt-get install converseen.txt'"
^ ^

ou par :
"\"/path/to/11-12-21--06-08--apt-get install converseen.txt\""
^^ ^^

ça ne change rien

je suppose qu'il faudrait plutôt faire qqc comme :
"/path/to/11-12-21--06-08--apt-get\ install\ converseen.txt"
^ ^

mais je pense qu'il doit y avoir un autre moyen plus simple ???
mais lequel ?
Lire les 34 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 7
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Une Bévue
Le #24094131
Le 21/12/2011 06:19, Une Bévue a écrit :

je suppose qu'il faudrait plutôt faire qqc comme :
"/path/to/11-12-21--06-08--apt-get install converseen.txt"
^ ^

mais je pense qu'il doit y avoir un autre moyen plus simple ???
mais lequel ?



je viens d'essayer au term avec :
"Bureau/to ti tu.txt"
^ ^

ça ne marche pas mieux, il doit y avoir une double ou triple
interprétation dans ST2 ???
Arnaud Gomes-do-Vale
Le #24094231
Une Bévue
/usr/bin/sublime-text-2 "${DATEDFILE}"

et là, Sublime Text 2 m'ouvre 3 fichiers :



Et si tu remplaces sublime-text-2 par autre chose ? Histoire de savoir
si c'est lui ou le shell.

--
Arnaud
http://blogs.glou.org/arnaud/
Nicolas George
Le #24094281
Une Bévue , dans le message écrit :
mon script fait un (avec le /path/to) :



Il ne devrait pas.

touch "$datedfile"



Pas besoin des guillemets avec zsh.

/usr/bin/sublime-text-2 "${DATEDFILE}"

et là, Sublime Text 2 m'ouvre 3 fichiers :



Ce « sublime » a l'air hideux.
Une Bévue
Le #24094331
Le 21/12/2011 08:25, Arnaud Gomes-do-Vale a écrit :
Et si tu remplaces sublime-text-2 par autre chose ? Histoire de savoir
si c'est lui ou le shell.



Très très bonne idée, merci !!!
J'essaie derechef !

;-)

BINGO !!!

c'est Sublime Text 2 qui est fautif, j'ai changé mon script accordingly :
=========================================================== #!/usr/bin/zsh
DATE=`date '+%y-%m-%d--%H-%M--'`

if [[ ${1} != '' ]]; then
DATEDFILE="${HOME}/Installations/${DATE}${1}.txt"
touch "${DATEDFILE}"
#/usr/bin/sublime-text-2 "${DATEDFILE}"
/usr/bin/gedit "${DATEDFILE}"
else
echo -n "${DATE}" | xclip -selection c
echo "'${DATE}' copied to the clipboard."
fi

exit 0
============================================================
Une Bévue
Le #24095501
Le 21/12/2011 08:45, Nicolas George a écrit :
Ce « sublime » a l'air hideux.


en fait il y a un script bash :
$ cat /usr/bin/sublime-text-2
#!/bin/bash
/usr/lib/sublime-text-2/sublime_text $*

le responsable est donc $*
cqfd...
j'ai changé mon script et ça roule...
Publicité
Suivre les réponses
Poster une réponse
Anonyme