Très bonne question 😉
Pour les scripts, dès lors que le fichier est accessible en lecture on peut l'exécuter en appelant l'interpréteur du langage utilisé :
python truc.py
perl machin.pl
bash bidule.sh
php bitonio.php
etc.
ou implicitement si l'interpréteur est spécifié dans le shebang du fichier . Par exemple si le fchier truc.py commence par :
#!/usr/bin/env python3
on peut exécuter avec
./truc.py
qui utilisera automatiquement python 3.
Rendre le script exécutable a d'abord un côté pratique. Il suffit d’appeler le script par son nom sans avoir à se préoccuper du langage utilisé, ni de sa version, dès lors que le shebang est correctement établi.
C'est d'autant plus utile lorsque le script se trouve dans le PATH (ex : /usr/local/bin) ou qu'il doit être appelé par un autre script, un démon, une tâche cron, une unité systemd, etc.
Un autre intérêt est la possibilité d'avoir des scripts exécutables mais non accessibles en lecture ou d'associer cela avec SUID, SGID.
Nuliel a écritOn peut faire la même chose avec des programmes C compilés.
Tu as un exemple ?