Programmation.shell : Alternatives aux shells
Posté par Kerro () le 13 février 2008
0
Bonjour,
j'utilise Bash depuis des années pour tout un tas de "petits" programmes. Par exemple pour récupérer des fichiers depuis un ftp, manipuler leur contenu, et envoyer le résultat dans une base de données. Ou pour effectuer des sauvegardes et les envoyer sur un serveur distant tout en gérant l'historique etc.
Mais Bash ne me convient pas en fait. C'est très bien lorsque j'ai 10 lignes, mais à partir de 100 ou 200 c'est la foire. Trop de particularités à gérer. Obligé d'utiliser des astuces pour arriver à faire ce que je veux. Et telle astuce fonctionne uniquement dans tel cas, des choses comme ça.
Je me pose depuis pas mal de temps la question d'utiliser autre chose que Bash. J'ai regardé les autres shells. Sauf erreur de ma part, ce n'est pas mieux question "propreté". A leur décharge, les shells n'ont à mon avis pas été conçu pour programmer des choses de centaines de lignes. Juste pour scripter un peu.
Je me dis qu'en programmant en PHP ou Python, Ruby, Perl, ce serait probablement mieux. J'ai regardé quelques discutions ici à propos des langages de remplacement de Bash, j'ai trouvé des fils de discution assez anciens.
Quelqu'un a-t-il l'expérience d'utiliser un langage autre qu'un shell pour "scripter" ?
Le C, que je connais plutôt très bien, ne me semble pas adapté pour mes besoins. Bien que, bien que.
> Lire le message (18 commentaires, moyenne: 1,7).
Vous avez demandé le commentaire #904523.



Langage de script
En effet, ce que tu decris est probablement la principale raison qui pousse beaucoup d'entre nous à utiliser un autre langage que le shell pour des programmes "plus gros".
Pour ce qui est des autres shells, il me semble que zsh a la pretention de permettre de faire un peu plus de chose, de proposer plus de fonctionnalités pour les scripts, mais personnellement, je ne depasserais pas une vingtaines de lignes.
Il y a aussi BashDiff, qui rajoute des trucs sur bash, mais, euh, ça me fait peur :)
Ensuite, ben il vaut mieux se tourner vers un langage de script, comme ceux que tu mentionnes : Perl, Python, Ruby sont les plus utilisé.
Il y a aussi PHP (mais je pense que c'est surtout utilisé pour le web), Lua, TCL, ... (Il doit y en avoir des centaines !)
Pour ce qui est du C, des compilo rapides comme tcc permettent de l'utiliser comme langage de script, j'ai meme vu des "interpreteurs" de C qui proposaient une sorte de C amélioré comme langage de script. Mais franchement, ça ne me semble pas pratique, vu qu'en general, il faut pas mal de ligne de C pour avoir l'equivalent fonctionnel d'une ligne de script.
Personnellement, apres avoir utilisé/essayé plusieurs langages, j'utilise plutot Ruby. C'est evidemment une affaire de gout, et les autres langages sont tout aussi valables.
Donc en gros, pour quelques lignes, voire pour faire un one-liner direct au prompt, c'est bash, mais des que ça devient "compliqué", je le fais en Ruby. Le bonus, c'est qu'avec ces langages, on a directement acces à des librairies reseau, XML, graphiques, ....
[^]Re: Langage de script
C'est quand même Perl, Python et Ruby qu'on rencontre le plus souvent pour cet usage-là. Perl parce qu'à la base c'est une tentative de faire quelque chose de plus puissant que le shell et parce qu'il est l'ami des administrateurs, Python parce qu'il est facile d'accès, élégant et de plus en plus populaire, et Ruby dont la concision et l'élégance font un concurrent sérieux au deux autres.
Persiste.
[^]Re: Langage de script
L'avantage de Perl est également qu'il est installé nativement sur la plupart des OS Unix/linux, ce qui n'est pas le cas des autres langages (Python/Ruby .....). Si on se trouve sur un site ou on es
t pas autorisé à installer ces outils ...
[^]Re: Langage de script
Encore que pour python, je pense que c'est de moins en moins vrai vu que je crois que (à confirmer), il est dans les dépendances de gnome.
En tout cas, pas mal d'outil sont programmer python ce qui fait qu'il est très souvent présent de base.
À l'heure actuelle, c'est peut-être encore vrai pour Ruby.
[^]Re: Langage de script
Encore que pour python, je pense que c'est de moins en moins vrai vu que je crois que (à confirmer), il est dans les dépendances de gnome.
J'avais surtout à l'idée les Unix propriétaires qui eux ne proposent pas python, mais proposent Perl pour la plupart.