[HS] assistance au code (Re: Script BASH gestion des espaces des noms de fichier)

2024-02-05 Par sujet Sébastien NOBILI

Bonjour,

Le 2024-02-05 16:07, Daniel Caillibaud a écrit :
Oui, et je vous encourage à passer vos shell bash à shellcheck, il 
signale ce genre d'erreur

(et plein d'autres).
Il est parfois un peut trop zélé, mais on peut lui dire qu'on sait ce 
qu'on fait avec du


  # shellcheck disable=SC

avant la ligne qui le fait râler (où  est le code d'erreur qu'il 
signale)


Avec Neovim, on peut avoir ce genre d'assistance en direct :)

Sébastien



Re: Script BASH gestion des espaces des noms de fichier

2024-02-05 Par sujet Daniel Caillibaud
Le 02/02/24 à 08:54, Jérémy Prego  a écrit :
> Pour éviter ce problème, on peut mettre les variables entre "
> 
> du coup, ça donnerai:
> 
> pdftk "$fichier1" stamp "$tampon" output "$fichier2"

Oui, et je vous encourage à passer vos shell bash à shellcheck, il signale ce 
genre d'erreur
(et plein d'autres).
Il est parfois un peut trop zélé, mais on peut lui dire qu'on sait ce qu'on 
fait avec du

  # shellcheck disable=SC

avant la ligne qui le fait râler (où  est le code d'erreur qu'il signale)

-- 
Daniel

La pensée vole et les mots vont à pied. Voilà tout le drame de l'écrivain.
Julien Green



Re: Script BASH gestion des espaces des noms de fichier

2024-02-02 Par sujet Pierre Malard
Essaie des cotes dans tes attributions de noms.

Par exemple :
TOTO="${NomFic}"

avec
NomFic="Mon Fichier"

Pareillement cote les appels :
Cmd —variable "${NomFic}"

Par exemple. Le fait de coter l’appel de variable avec des double cote permet à 
BASH de considérer NomFic comme un seul paramètre envoyé à Cmd avec ses blancs. 
Après il faut savoir comment la commande Cmd va traiter tout ça…

> Le 2 févr. 2024 à 07:51, Informatique BILLARD 
>  a écrit :
> 
> Bonjour
> 
> j'ai écrit un petit script qui lance à la fin cette commande :
> 
> pdftk $fichier1 stamp $tampon output $fichier2
> 
> avec $fichier1 et $tampon, $fichier2  sont construit à partir des paramètres 
> fournis au script .
> 
> Mais je rencontre un problème quand il y a un espace dans le nom de fichier 
> ou le répertoire pour pdftk ces espaces engendrent une erreur.
> 
> J'ai pourtant placé l'antislah avant mes espace dans l'affectation des 
> variables.
> 
> tampon=/user/Document/cachet\ pdf
> 
> Merci par avance
> 
> François-Marie
> 

--
Pierre Malard
Responsable architectures système CDS DINAMIS/THEIA Montpellier
IRD - UMR Espace-Dev - UAR CPST - IR Data-Terra
Maison de la Télédétection
500 rue Jean-François Breton
34093 Montpellier Cx 5
France

   « SPAM : Spieced Pork and Meat »
   Pierre Dac (Londres, 1944)
Extrait de « Pierre DAC parle au Français » sur Radio Londres, le 24 mars 1944, 
dans Drôle de guerre, éditions Omnibus (2008), pages 93 à 96. 
(https://www.epi.asso.fr/revue/articles/a1602d.htm)

   |\  _,,,---,,_
   /,`.-'`'-.  ;-;;,_
  |,4-  ) )-,_. ,\ (  `'-'
 '---''(_/--'  `-'\_)   πr

perl -e '$_=q#: 3|\ 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-.  ;-;;,_:  |,A-  ) )-,_. ,\ 
(  `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"'  `-'"'"'\_): 
24πr::#;y#:#\n#;s#(\D)(\d+)#$1x$2#ge;print'
- --> Ce message n’engage que son auteur <--



signature.asc
Description: Message signed with OpenPGP


Re: Script BASH gestion des espaces des noms de fichier

2024-02-02 Par sujet Erwann Le Bras

Effectivement François

Merci d'avoir rectifié.

Erwann

Le 02/02/2024 à 13:09, François TOURDE a écrit :

Le 19755ième jour après Epoch,
Erwann Le Bras écrivait:


Éviter les boucles "for" avec listes de fichiers (for f in `ls
"$dir"`) ou (for f in *), les espaces sont mal interprétés.

Ça marche très bien l'utilisation avec for f in *, si tu prends soin
d'utiliser "$f" plutôt que juste $f

Par contre, le "in `ls *`" n'est effectivement pas une bonne idée.


Re: Script BASH gestion des espaces des noms de fichier

2024-02-02 Par sujet François TOURDE
Le 19755ième jour après Epoch,
Erwann Le Bras écrivait:

> Éviter les boucles "for" avec listes de fichiers (for f in `ls
> "$dir"`) ou (for f in *), les espaces sont mal interprétés.

Ça marche très bien l'utilisation avec for f in *, si tu prends soin
d'utiliser "$f" plutôt que juste $f

Par contre, le "in `ls *`" n'est effectivement pas une bonne idée.



Re: Script BASH gestion des espaces des noms de fichier

2024-02-02 Par sujet Erwann Le Bras

bonjour

comme dis par ailleurs, pas de problème avec les espaces si les 
variables et chemins sont bien protégés  avec des doubles-cotes (["])


fichier="mon fichier"
dir="$HOME/mon répertoire"
cp "$fichier" "$dir"

Éviter les boucles "for" avec listes de fichiers (for f in `ls "$dir"`) 
ou (for f in *), les espaces sont mal interprétés.

À la place utiliser "find" : find "$dir" -name "${fichier}*" -exec

c'est à peu près tout.

Erwann

Le 02/02/2024 à 08:41, Informatique BILLARD a écrit :


Bonjour

j'ai écrit un petit script qui lance à la fin cette commande :

pdftk $fichier1 stamp $tampon output $fichier2

avec $fichier1 et $tampon, $fichier2  sont construit à partir des 
paramètres fournis au script .


Mais je rencontre un problème quand il y a un espace dans le nom de 
fichier ou le répertoire pour pdftk ces espaces engendrent une erreur.


J'ai pourtant placé l’antislash avant mes espace dans l'affectation 
des variables.


tampon=/user/Document/cachet*\ *pdf

Merci par avance

François-Marie


Re: Script BASH gestion des espaces des noms de fichier

2024-02-02 Par sujet Informatique BILLARD

merci je ne connaissais pas cet outils

François-Marie

Le 02/02/2024 à 09:54, Klaus Becker a écrit :

Detox est ton ami

Klaus

Re: Script BASH gestion des espaces des noms de fichier

2024-02-02 Par sujet Informatique BILLARD

Bon

j'ai tourné le problème dans tous les sens et finalement j'ai opté pour 
ceci


1. le nom du fichier passé comme argument au script est traité pour
   remplacer les espaces par des underscore.
2. je fait un renommage de ce fichier avec le nom sans espaces.
3. Puis traitement et tout fonctionne.

Merci à vous.

François-Marie


Le 02/02/2024 à 08:57, Cyrille a écrit :

Bjr,


tampon=/user/Document/cachet\ pdf

et
tampon="/user/Document/cachet\ pdf"
(utiliser des double quote

??

++


Re: Script BASH gestion des espaces des noms de fichier

2024-02-02 Par sujet Klaus Becker
Detox est ton ami

Klaus


Re: Script BASH gestion des espaces des noms de fichier

2024-02-02 Par sujet Informatique BILLARD

Le 02/02/2024 à 08:48, Basile Starynkevitch a écrit :


On 2/2/24 08:41, Informatique BILLARD wrote:


Bonjour

j'ai écrit un petit script qui lance à la fin cette commande :

pdftk $fichier1 stamp $tampon output $fichier2

avec $fichier1 et $tampon, $fichier2  sont construit à partir des 
paramètres fournis au script .


Mais je rencontre un problème quand il y a un espace dans le nom de 
fichier ou le répertoire pour pdftk ces espaces engendrent une erreur.


J'ai pourtant placé l’antislash avant mes espace dans l'affectation 
des variables.


tampon=/user/Document/cachet*\ *pdf

Une solution simple c'est de s'interdire les espaces dans les noms de 
fichiers. Pourquoi ne pas coder par exemple
Oui en effet j'ai fini par supprimer les espaces dans les noms de 
fichiers et répertoires. Cependant ce script traite des fichiers 
ayant parfois des espaces et si je dois renommer à chaque fois je 
vais perdre l'intérêt du script.



tampon=/user/Document/cachet.pdf

et ensuite lancer votre script avec /bin/bash -vx lescriptbash


Merci par avance

François-Marie





Script BASH gestion des espaces des noms de fichier

2024-02-02 Par sujet Informatique BILLARD

Bonjour

j'ai écrit un petit script qui lance à la fin cette commande :

pdftk $fichier1 stamp $tampon output $fichier2

avec $fichier1 et $tampon, $fichier2  sont construit à partir des 
paramètres fournis au script .


Mais je rencontre un problème quand il y a un espace dans le nom de 
fichier ou le répertoire pour pdftk ces espaces engendrent une erreur.


J'ai pourtant placé l'antislah avant mes espace dans l'affectation des 
variables.


tampon=/user/Document/cachet*\ *pdf

Merci par avance

François-Marie


Re: Script BASH gestion des espaces des noms de fichier

2024-02-02 Par sujet Cyrille
Bjr,

> tampon=/user/Document/cachet\ pdf
et 
tampon="/user/Document/cachet\ pdf"
(utiliser des double quote

??

++



Re: Script BASH gestion des espaces des noms de fichier

2024-02-01 Par sujet Jérémy Prego

bonjour,

Le 02/02/2024 à 08:41, Informatique BILLARD a écrit :


Bonjour

j'ai écrit un petit script qui lance à la fin cette commande :

pdftk $fichier1 stamp $tampon output $fichier2



Pour éviter ce problème, on peut mettre les variables entre "

du coup, ça donnerai:

pdftk "$fichier1" stamp "$tampon" output "$fichier2"

avec $fichier1 et $tampon, $fichier2  sont construit à partir des 
paramètres fournis au script .


Mais je rencontre un problème quand il y a un espace dans le nom de 
fichier ou le répertoire pour pdftk ces espaces engendrent une erreur.


J'ai pourtant placé l’antislash avant mes espace dans l'affectation 
des variables.


tampon=/user/Document/cachet*\ *pdf

Merci par avance

François-Marie



Jerem

Re: Script BASH gestion des espaces des noms de fichier

2024-02-01 Par sujet Basile Starynkevitch



On 2/2/24 08:41, Informatique BILLARD wrote:


Bonjour

j'ai écrit un petit script qui lance à la fin cette commande :

pdftk $fichier1 stamp $tampon output $fichier2

avec $fichier1 et $tampon, $fichier2  sont construit à partir des 
paramètres fournis au script .


Mais je rencontre un problème quand il y a un espace dans le nom de 
fichier ou le répertoire pour pdftk ces espaces engendrent une erreur.


J'ai pourtant placé l’antislash avant mes espace dans l'affectation 
des variables.


tampon=/user/Document/cachet*\ *pdf

Une solution simple c'est de s'interdire les espaces dans les noms de 
fichiers. Pourquoi ne pas coder par exemple


tampon=/user/Document/cachet.pdf

et ensuite lancer votre script avec /bin/bash -vx lescriptbash


Merci par avance

François-Marie


--
Basile Starynkevitch 
(only mine opinions / les opinions sont miennes uniquement)
92340 Bourg-la-Reine, France
web page: starynkevitch.net/Basile/
See/voir:   https://github.com/RefPerSys/RefPerSys



Script BASH gestion des espaces des noms de fichier

2024-02-01 Par sujet Informatique BILLARD

Bonjour

j'ai écrit un petit script qui lance à la fin cette commande :

pdftk $fichier1 stamp $tampon output $fichier2

avec $fichier1 et $tampon, $fichier2  sont construit à partir des 
paramètres fournis au script .


Mais je rencontre un problème quand il y a un espace dans le nom de 
fichier ou le répertoire pour pdftk ces espaces engendrent une erreur.


J'ai pourtant placé l’antislash avant mes espace dans l'affectation des 
variables.


tampon=/user/Document/cachet*\ *pdf

Merci par avance

François-Marie