Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 12633|Antwoord: 0

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

[Link kopiëren]
Geplaatst op 13-06-2020 22:40:35 | | | |
Bij het uitvoeren van een shell-script wordt de volgende foutmelding teruggegeven:

-bash: ./log_job.sh: /bin/bash^M: slechte interpreter: Geen dergelijk bestand of map
Foutoorzaken:

.sh script is geschreven onder het Windows-systeem, dus er kunnen onzichtbare tekens zijn, is het uit bovenstaande foutmelding zeer waarschijnlijk dat het scriptbestand in DOS-formaat is, dat wil zeggen dat het einde van elke regel wordt geïdentificeerd door \r\n, en de ASCII-code respectievelijk 0x0D 0x0A.

De fout die wordt weergegeven bij het uitvoeren van een shellscript komt voornamelijk doordat het shell-scriptbestand in DOS-formaat is, dat wil zeggen het einde van elke regel wordt geïdentificeerd door \r\n, en het einde van het UNIX-formaat bestand door \n.

Speciale opmerking: ^M is niet de ^ en letter M die wordt geproduceerd door de toets shift + 6, het is een teken, de ASCII is 0x0D, de manier om het te genereren is eerst op CTRL+V te drukken en dan enter (of CTRL+M)


oplossing

Er zijn verschillende manieren om te controleren of het scriptbestand in DOS- of UNIX-formaat is.

(1) Controleer het formaat van het script: cat -Een bestandsnaam Uit de weergaveresultaten kan worden afgeleid dat de bestandsregel die eindigt in dos-formaat ^M$ is, en de bestandsregel die eindigt in unix-formaat $.



(2) Wijzig het formaat van het script: vi-bestandsnaam om het bestand te openen en uit te voeren:set ff=UNIXStel het bestand in op Unix en voer het uit:wq, opgeslagen in UNIX-formaat.

  (3) Controleer het formaat van het script: cat -Een bestandsnaam Uit het weergaveresultaat kun je afleiden dat de bestandsregel die eindigt in dos-formaat ^M$ is, en de bestandsregel die eindigt in Unix-formaat $.







Vorig:SSIS Tutorial 1 Inleiding tot SQL Server Integration Services
Volgend:Nginx log splitsing en verwijdering
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com