Que faire si Linux ne peut pas exécuter le script sh

WBOY
Libérer: 2022-07-20 14:53:12
original
5124 Les gens l'ont consulté

Il existe trois solutions : 1. Utilisez la commande "dos2unix filename" pour convertir directement le fichier spécifié au format unix ; 2. Utilisez la commande sed pour remplacer directement le caractère de fin par le format unix, et la syntaxe est "sed - i "s/ r//" filename" ou "sed -i "s/^M//" filename" ; 3. Après avoir utilisé vi pour ouvrir le fichier, utilisez "set ff=unix" pour définir le fichier sur unix, et utilisez ":wq" pour le sauvegarder.

Que faire si Linux ne peut pas exécuter le script sh

L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.

Que dois-je faire si Linux ne peut pas exécuter le script sh ?

Une telle erreur est générée lors de l'exécution du script shell. La raison principale est que le fichier de script shell est au format dos, c'est-à-dire que la fin de chaque ligne est. identifié par rn, tandis que la fin de la ligne du fichier au format unix se termine par le logo n.

Plusieurs façons de vérifier si un fichier script est au format dos ou au format unix.

(1) cat -A filename On peut juger à partir des résultats affichés que la ligne de fichier se terminant au format dos est ^M, la ligne de fichier se terminant au format unix est , la ligne de fichier se terminant au format unix est et le la ligne de fichier se terminant au format Unix est.

(2) od -t x1 filename Si vous voyez les caractères 0d 0a dans le contenu de sortie, alors le fichier est au format dos. S'il n'y a que 0a, il est au format unix.

(3) Ouvrez le fichier avec le nom de fichier vi et exécutez : set ff Si le fichier est au format dos, il sera affiché sous la forme fileformat=dos. S'il est unxi, il sera affiché sous la forme fileformat=unix.

Solution :

(1) Utilisez la commande Linux dos2unix filename pour convertir directement le fichier au format unix

dos2unix filename
Copier après la connexion

(2) Utilisez la commande sed sed -i "s/r//" filename ou sed -i " s/^M//" le nom de fichier remplace directement le caractère de fin par le format unix

sed -i “s/\r//” filename 
sed -i “s/^M//” filename
Copier après la connexion

(3) vi filename ouvre le fichier, exécutez : set ff=unix Définissez le fichier sur unix, puis exécutez : wq, enregistrez-le sous unix format

set ff=unix
Copier après la connexion

Apprentissage recommandé : Tutoriel vidéo Linux

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!