Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 12633|Répondre: 0

[Linux] /bin/bash^M: bad interpreter: No such file or directory

[Copié le lien]
Publié sur 13/06/2020 22:40:35 | | | |
Lors de l’exécution d’un script shell, l’erreur suivante est renvoyée :

-bash : ./log_job.sh : /bin/bash^M : mauvais interpréteur : Aucun fichier ou répertoire de ce type
Causes d’erreur :

.sh script est écrit sous Windows, donc il peut y avoir des caractères invisibles ; d’après l’invite d’erreur ci-dessus, il est très probable que le fichier script soit au format DOS, c’est-à-dire que la fin de chaque ligne est identifiée par \r\n, et que son code ASCII est 0x0D, 0x0A respectivement.

L’erreur affichée lors de l’exécution d’un script shell est principalement due au fait que le fichier de script shell est au format DOS, c’est-à-dire que la fin de chaque ligne est identifiée par \r\n, et la fin du fichier au format UNIX par \n.

Note spéciale : ^M n’est pas le ^ et la lettre M produits par le décalage de touche + 6, c’est un caractère, son ASCII est 0x0D, la façon de le générer est d’appuyer d’abord sur CTRL+V, puis sur Entrée (ou CTRL+M)


solution

Il existe plusieurs façons de vérifier si le fichier de script est au format DOS ou UNIX.

(1) Vérifier le format du script : cat -A nom de fichier D’après les résultats affichés, on peut juger que la ligne de fichier se terminant au format dos est ^M$, et la ligne de fichier se terminant au format Unix est $.



(2) Modifier le format du script : vi filename pour ouvrir le fichier et l’exécuter:set ff=unixRéglez le fichier sur unix et exécutez:wq, enregistré au format UNIX.

  (3) Vérifier le format du script : cat -A fichier D’après le résultat affiché, vous pouvez juger que la ligne de fichier se terminant au format dos est ^M$, et la ligne de fichier se terminant au format unix est $.







Précédent:Tutoriel SSIS 1 Introduction aux services d’intégration SQL Server
Prochain:Découpage et suppression de logarithèmes de Nginx
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com