Rechercher : dans
Par :

[bash] espaces dans le nom des fichiers

Dernière réponse le 22 nov 2007 à 02:58:48 total_newbie, le 21 nov 2007 à 20:27:51 
 Signaler ce message aux modérateurs

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.

Configuration: Linux Ubuntu 7.10
Firefox 2.0.0.8

En référence à cette discussion

Meilleures réponses pour « [bash] espaces dans le nom des fichiers » dans :
[Windows] Obtenir la liste des fichiers d'un dossier VoirLister le contenu d'un dossier Voici une astuce simple qui permet de lister le nom des fichiers contenus dans un répertoire. Vous pourrez obtenir en un clic les titres de vos chansons, de vos photos, etc. dans un fichier...
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
[Excel] Chemin et nom de stockage de feuille de calcul VoirIndiquer automatiquement le chemin d'accès (path) et le nom de stockage de toute feuille de calcul Noter dans une cellule (A& par exemple) la formule : =cellule("nomfichier";A1) A chaque sauvegarde et/ou déplacement de fichier dans votre...
Partition - Partitionnement d'un disque dur VoirQu'est-ce qu'une partition? Le partitionnement d'un disque dur se fait après le formatage physique de celui-ci et avant le formatage logique. Il consiste à créer des zones sur le disque dont les données ne seront pas mélangées. Cela sert par...

1

mamiemando, le 21 nov 2007 à 20:53:30
  • +1

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

Répondre à mamiemando

2

total_newbie, le 21 nov 2007 à 22:42:28

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)

Répondre à total_newbie

3

mamiemando, le 22 nov 2007 à 00:21:47

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/M­akefile

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

Bonne chance

Répondre à mamiemando

4

 total_newbie, le 22 nov 2007 à 02:58:48

Merci :)

Répondre à total_newbie