Bash est un scripting
Langue:
De wikipédia :
Un langage de script ou langage de script est un langage de programmation qui prend en charge l'écriture de scripts, des programmes écrits pour un environnement logiciel qui automatisent l'exécution de tâches qui pourraient alternativement être exécutées une par une par un opérateur humain. [...]
Le terme script est généralement réservé aux petits programmes (jusqu'à quelques milliers de lignes de code).
Les scripts sont généralement rapides et sales. Dites, un script bash pour vous faciliter la vie. Alors qu'un langage de « programmation » est censé être beaucoup plus réfléchi et délibéré. Le problème avec les langages de « programmation » est qu'ils sont généralement plus rapides et offrent plus de contrôle sur les choses de bas niveau si vous le souhaitez.
Les langages de « programmation » sont généralement utilisés dans des scénarios où le code sera présent pendant longtemps. Si vous voulez écrire quelque chose rapidement et ne plus jamais l'utiliser, les langages de "script" sont ce qu'il vous faut.
Vous pouvez trouver un article intéressant ici.
Si vous connaissez une commande, dites, ls
, vous le tapez, puis appuyez sur retour, le shell saura où se trouve ce programme (ls), l'invoquera et vous montrera le résultat. Il s'agit de l'utilisation du shell "non-script".
Mais, si vous ordonnez quelques-unes de ces commandes dans une séquence, dites A, B, C, D, puis placez-la (la séquence) dans un fichier exécutable, vous avez un programme. Le programme a un nom et un emplacement, il peut donc être référencé et appelé; il a du code, donc il peut être exécuté, une commande à la fois, par le CPU.
(Le programme n'est pas compilé - comme, par exemple, le source C l'aurait été - et cela en fait un script. Mais c'est quand même un programme.)
Autrement dit, à certains égards, déjà à ce stade, vous programmez, car vous indiquez à l'ordinateur ce qu'il doit faire.
De plus, vous utilisez également, encore une fois à un niveau très basique, un langage de programmation, car vous ne pouvez pas simplement taper n'importe quoi (et vous attendre à ce que cela fonctionne); en même temps, quoi que vous tapiez, vous obtiendrez une activité de l'ordinateur qui correspond exactement à ce que vous avez écrit.
Il y a des règles sur la façon dont vous devez dire les choses, et il y a des règles sur la façon dont l'ordinateur réagira à ces choses.
Cela dit, avec la "programmation", vous associez généralement un peu plus de puissance expressive que de simplement empiler des commandes les unes sur les autres. À tout le moins, vous aimeriez créer des branches (if ... then ... else
), itération (boucles :while
, for
, etc.), et probablement d'autres choses aussi. Mais ce n'est pas grave car les langages de script ont ces choses et plus encore.
Les shells ont des langages différents, oui, mais certains peuvent se chevaucher dans une large mesure à cause des conventions (pourquoi changer une bonne façon de dire quelque chose ?), ou pour être compatibles avec des versions antérieures (ou certaines normes).