Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 12633|Răspunde: 0

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

[Copiază linkul]
Postat pe 13.06.2020 22:40:35 | | | |
Când se execută un script shell, se returnează următoarea eroare:

-bash: ./log_job.sh: /bin/bash^M: interpret prost: Nu există astfel de fișiere sau director
Cauzele erorii:

.sh scriptul este scris în sistemul Windows, deci pot exista caractere invizibile; din întrebarea de eroare de mai sus, este foarte probabil ca fișierul script să fie în format DOS, adică sfârșitul fiecărei linii este identificat prin \r\n, iar codul său ASCII este 0x0D, respectiv 0x0A.

Eroarea afișată la executarea unui script shell se datorează în principal faptului că fișierul de script shell este în format DOS, adică sfârșitul fiecărei linii este identificat prin \r\n, iar sfârșitul fișierului în format UNIX este identificat prin \n.

Notă specială: ^M nu este ^ și litera M produse de deplasarea tastei + 6, este un caracter, ASCII-ul său este 0x0D, modul de generare este să apeși mai întâi CTRL+V, apoi enter (sau CTRL+M)


soluție

Există mai multe moduri de a verifica dacă fișierul de script este în format DOS sau UNIX.

(1) Verifică formatul scriptului: cat -Nume de fișier A Din rezultatele afișării, se poate judeca că linia de fișier care se termină în format dos este ^M$, iar linia de fișier care se termină în format unix este $.



(2) Modifică formatul scriptului: vi filename pentru a deschide fișierul și a executa:set ff=unixSetează fișierul pe unix și execută:wq, salvat în format UNIX.

  (3) Verifică formatul scriptului: cat -A nume fișier Din rezultatul afișării, poți judeca că linia de fișier care se termină în format dos este ^M$, iar linia de fișier care se termină în format unix este $.







Precedent:SSIS Tutorial 1 Introducere în serviciile de integrare SQL Server
Următor:Divizarea logarimului Nginx și ștergerea
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com