Lorsque j'essayais d'exécuter tous les scripts d'un répertoire en utilisant la commande run-parts, j'ai rencontré une erreur - "run-parts:failed to exec script.sh:Exec format error" . Les scripts fonctionnaient très bien lorsque je les exécutais directement comme "./script.sh" et "sh script.sh". Mais ils n'ont pas fonctionné lorsque je les ai exécutés avec la commande run-parts. Pour ceux qui se demandent, la commande run-parts exécutera tous les scripts dans un répertoire. Si vous avez une erreur comme celle-ci lors de l'exécution d'un script, cette astuce rapide vous aidera à corriger "l'erreur de format Exec" lors de l'exécution de scripts avec la commande run-parts sous Linux.
Correction "Erreur de format Exec" lors de l'exécution de scripts avec la commande run-parts
Pour exécuter tous les scripts du dossier Documents, j'ai exécuté :
$ run-parts --regex '^s.*\.sh
J'ai le message d'erreur suivant :
run-parts: failed to exec Documents/script1.sh: Exec format error run-parts: Documents/script1.sh exited with return code 1 run-parts: failed to exec Documents/script2.sh: Exec format error run-parts: Documents/script2.sh exited with return code 1 run-parts: failed to exec Documents/script3.sh: Exec format error run-parts: Documents/script3.sh exited with return code 1 run-parts: failed to exec Documents/script4.sh: Exec format error run-parts: Documents/script4.sh exited with return code 1

run-parts :échec de l'exécution du script.sh :erreur de format d'exécution
Pour corriger "Erreur de format Exec", vous devez ajouter un shebang au début de vos scripts afin que le noyau sache comment les exécuter. Pour ceux qui se demandent, un shebang est la séquence de caractères composée des caractères dièse et point d'exclamation (# ! ) au début d'un script. Lorsque vous ajoutez le shebang au début d'un fichier texte, il est interprété comme un fichier exécutable.
La plupart des scripts commencent par un shebang. Voici quelques exemples typiques de shebang.
Coquillage Bourne , ou un shell compatible :
#!/bin/sh
Bas :
#!/bin/bash
Perl :
#!/usr/bin/perl
Python 2.x :
#!/usr/bin/python
Python 3.x :
#!/usr/bin/python3
C'est ce qu'on appelle un shebang.
Maintenant, revenons au sujet. Modifiez vos scripts à l'aide de votre éditeur préféré :
$ nano Documents/ostechnix.sh
Ajoutez le shebang suivant au début du script :
#!/bin/sh

Correction "Erreur de format Exec" lors de l'exécution de scripts avec run-parts
Vous pouvez maintenant exécuter les scripts avec la commande run-parts sans aucun problème en utilisant la commande run-parts.
Mise à jour :
En tant que l'un de nos lecteurs Mr.Danesh mentionné dans la section des commentaires ci-dessous, au lieu de coder en dur le chemin de l'interpréteur, par exemple
#!/usr/bin/python3
Nous pouvons utiliser :
#!/usr/bin/env python3
C'est plus portable au cas où l'interpréteur est installé dans un autre répertoire (non par défaut). env est une commande shell pour les systèmes d'exploitation de type Linux et Unix. Il est souvent utilisé par les scripts shell pour lancer le bon interpréteur.
Vous pouvez également utiliser ShellCheck utilitaire pour trouver des problèmes dans vos scripts shell.
- ShellCheck – Un utilitaire gratuit pour trouver des bogues dans vos scripts shell
Télécharger – Guide gratuit :"Guide de script avancé pour Bash"
J'espère que cela vous aidera.