Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/03/2016, à 22:19

jeteztout

Manipuler un fichier dont l'extension change

Bonsoir,

je cherche à créer une petite suite de commande pour opérer sur un fichier au nom variable (dont en utilisant $1) mais dont l'extension va changer au fur et à mesure des commandes.

Voici mon script actuel :

#!/bin/sh

latex $1 &
dvipdf $1 &
wait
echo "Fichier compilé et PDF généré."

J'invoque le script avec une commande type :

./truc.sh art.tex

Problème : la commande DVIPDF échoue car $1 correspond à art.tex, or latex $1 génère un fichier nommé art.dvi, c'est sur ce dernier que doit travailler dvipdf pour produire un fichier art.pdf

Mais je ne sais pas comment faire pour que le changement d'extension soit pris en compte ?

Hors ligne

#2 Le 24/03/2016, à 05:57

Watael

Re : Manipuler un fichier dont l'extension change

salut,

des commandes qui écrivent dans un fichier ne devraient pas être en arrière plan, car, alors que l'écriture n'est pas terminée, les autres commandes tentent de lire les modifications !

pour ton problème, enlève l'extension du fichier au début du script, avec le Développement de variables (cf. man bash), et ajoute au nom de fichier sans extension l'extension nécessaire en dur pour chaque commande.


Connected \o/
Welcome to sHell. · eval is evil.

En ligne

#3 Le 24/03/2016, à 06:35

pingouinux

Re : Manipuler un fichier dont l'extension change

Bonjour,
En complément de la réponse précédente, tu peux même ne pas donner d'extension lors de l'appel, et les ajouter dans le script

./truc.sh art

Hors ligne

#4 Le 24/03/2016, à 07:51

serged

Re : Manipuler un fichier dont l'extension change

Quelque chose comme :

nom=$1
racine="${nom%.*}"
[...]
dvipdf "$racine.dvi"
[...]

LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#5 Le 24/03/2016, à 14:24

jeteztout

Re : Manipuler un fichier dont l'extension change

Merci à vous, j'ai donc opté pour la solution la plus simple :

#!/bin/sh

latex $1.tex &&
dvipdf $1.dvi &&
echo "Fichier compilé et PDF généré."

Et en appel,

./truc.sh ficher

Merci !

Hors ligne

#6 Le 24/03/2016, à 14:28

pingouinux

Re : Manipuler un fichier dont l'extension change

Il vaut mieux mettre des " " autour de $1, au cas où le nom du fichier contiendrait des espaces

latex "$1".tex

Hors ligne

#7 Le 25/03/2016, à 08:04

serged

Re : Manipuler un fichier dont l'extension change

pingouinux a écrit :

Il vaut mieux mettre des " " autour de $1, au cas où le nom du fichier contiendrait des espaces

latex "$1".tex

Plutôt autour du nom de fichier complet :

latex "$1.tex"

LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#8 Le 25/03/2016, à 08:26

pingouinux

Re : Manipuler un fichier dont l'extension change

serged a écrit :

Plutôt autour du nom de fichier complet :

Avec une extension "en dur" sans espace, pour moi c'est équivalent.

Hors ligne