[bash] espaces dans le nom des fichiers

Résolu
total_newbie -  
 total_newbie -
Bonjour,

Je tente d'écrire un script dont une variable est un chemin vers un fichier. Malheureusement, ce que j'ai fait ne marche plus dès qu'apparait un espace. Pour simplifier, je voudrait que le scrip suivant fonctionne :

chemin="/home/user/mon fichier"
latex $fichier.tex

ce script me renvoie : I can't find file `/home/user/mon'.

Idem si je change par : chemin="/home/user/mon\ fichier"

Y a t-il un moyen simple pour que bash interprète les espaces dans les noms de fichiers ?

Merci d'avance.
En référence à cette discussion

4 réponses

mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Il serait plus logique d'utiliser un makefile, mais bon....

plop.sh
#!/bin/sh
file="mon fichier.tex"
latex "$file"

makefile
file="mon fichier.tex"
all:
    latex $(file)

En pratique :
chmod +x plop.sh
./plop.sh

et pour la deuxième version :
make

Bonne chance
4
total_newbie
 
La reponse est tellement simple que j'ai honte de ma question du coup :-[
Un grand merci à toi pour ta réponse et pour ton aide :) ;)

Pour ma culture, qu'est ce qu'un makefile ? (je debute sous nux et en bash)
0
mamiemando Messages postés 33778 Date d'inscription   Statut Modérateur Dernière intervention   7 884
 
Un makefile c'est une sorte de shell intelligent : tu définis un ensemble de règle et de cible qui s'appellent les unes les autres pour construire par exemple un programme. Dans le cas d'un fichier latex c'est assez pratique aussi. En voici par exemple (je ne sais pas ce qu'il vaut puisque je n'ai pas testé) un :
http://www.acoustics.hut.fi/u/mairas/UltimateLatexMakefile/Makefile

Pour plus d'infos sur les makefile cf google et wikipedia :
https://gl.developpez.com/tutoriel/outil/makefile/
https://fr.wikipedia.org/wiki/Make

Bonne chance
0
total_newbie
 
merci :)
0