[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [debian-user] différences entre script & terminal ?



Le dimanche 14 novembre 2010 à 09:15:52, Jérôme a écrit :
> Le dimanche 14 novembre 2010 à 17:21 +0100, j.seq a écrit :
> > Bonjour la liste,
> > 
> > je suis perturbé par les différences d'interprétation des commandes dans un terminal et dans un script pour les noms de répertoire contenant des espaces :
> > 
> > exemple simplifié :
> > la commande en console 
> > moi$ cp /home/mon_home/mon_fichier_source /home/mon_home/mon_rep\ destination
> > fonctionne.
> > ... de même que
> > moi$ cp "/home/mon_home/mon_fichier_source" "/home/mon_home/mon_rep destination"
> > 
> > 
> > ... mais
> > moi$ var1=/home/mon_home/mon_fichier_source
> > moi$ var2=/home/mon_home/mon_rep\ destination
> > moi$ cp $var1 $var2 
> > me renvoie : 
> > moi$ cp: la cible « destination » n'est pas un répertoire
> > 
> > j'ai, en vain, passé des heures à jouer avec des ", des ', des ` ...
> > puis avec exec, eval, des redirections ... etc.

cp "$var1" "$var2"

> Une lecture indispensable pour bash, dans les paquets en anglais : 
> abs-guide  et en français sur http://abs.traduc.org/abs-fr/ [+❤]

Je me sens obligé de réagir, l'"Advanced Bash Scripting guide" est une _daube_
(non, ce n'est pas vendredi).
Ce guide est très ludique de part les exemples pratiques qu'il propose de
tester, il montre plein de petits scripts qui peuvent être de bons exemples
quand on ne sait pas où commencer. Il ne parle pas que de bash, mais montre
aussi parfois comment se servir d'outils géniaux comme bc.

Le problème est que au niveau de bash, le _langage_ , il est imprécis, il n'y
a jamais de discussion sur la /correction/ des scripts écrits, et pourtant
nombre d'entre eux devrait être réécrits. La plupart des scripts contiennent
des erreurs qui ne se voient pas au premier abord, comme des utilisations
de variables sans guillemets doubles, des   for line in `cat fichier`; ...
des utilisations à tort et à travers d'eval et de expr. Nombreux sont ceux
à avoir voulu proposer des corrections, des solutions jugées meilleures...
Aucun d'entre eux n'a reçu de réponse.


Si vous ne savez pas trier le bon du mauvais, ce guide vous apprendra à écrire
des *BUGS*, pas des scripts.

Je vous recommande plutôt :

 * http://mywiki.wooledge.org/BashGuide
 * http://mywiki.wooledge.org/BashFAQ
 * http://wiki.bash-hackers.org/doku.php
 * Le canal irc #bash sur irc.freenode.net

"Oui mais ce sont des ressources en anglais !"

=> Mieux vaut apprendre quelque chose de correct en anglais
plutôt qu'apprendre des conn^Wbêtises en français.

-- 
"Free software, free society."
Jérémie Courrèges-Anglas
GPG key: 06A11494


Reply to: