Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 12633|Vastaus: 0

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

[Kopioi linkki]
Julkaistu 13.6.2020 22.40.35 | | | |
Kun shell-skripti suoritetaan, palautetaan seuraava virhe:

-bash: ./log_job.sh: /bin/bash^M: huono tulkitsija: Ei tällaista tiedostoa tai hakemistoa
Virhe aiheuttaa:

.sh skripti on kirjoitettu Windows-järjestelmällä, joten siinä voi olla näkymättömiä merkkejä. Yllä olevan virhekehotteen perusteella on hyvin todennäköistä, että skriptitiedosto on DOS-muodossa, eli jokaisen rivin loppu tunnistetaan \r\n-muodossa ja sen ASCII-koodi on 0x0D, 0x0A vastaavasti.

Shell-skriptin suorituksessa näkyvä virhe johtuu pääasiassa siitä, että shell-skriptitiedosto on DOS-muodossa, eli jokaisen rivin loppu tunnistetaan \r\n:llä ja UNIX-tiedoston loppu tunnistetaan \n:llä.

Erityishuomautus: ^M ei ole se ^ ja kirjain M, joka syntyy näppäimen siirrosta + 6, vaan merkki, sen ASCII on 0x0D, tapa generoida se painamalla ensin CTRL+V ja sitten enter (tai CTRL+M)


ratkaisu

On useita tapoja tarkistaa, onko skriptitiedosto DOS- vai UNIX-muodossa.

(1) Tarkista skriptin muoto: cat -A tiedostonimi Näyttötulosten perusteella voidaan arvioida, että dos-muotoon päättyvä tiedostorivi on ^M$ ja unix-muotoon päättyvä rivi on $.



(2) Muokkaa skriptin muotoa: vi tiedostonimi, jotta tiedosto avautuu ja suoritetaan:set ff=unixAseta tiedosto unixiksi ja suorita:wq, tallennettuna UNIX-muodossa.

  (3) Tarkista skriptin muoto: cat -A tiedostonimi Näyttötuloksen perusteella tiedostorivi, joka päättyy dos-muotoon, on ^M$ ja unix-muotoon päättyvä tiedostorivi on $.







Edellinen:SSIS-opas 1 Johdatus SQL Server -integraatiopalveluihin
Seuraava:Nginx-lokin jakaminen ja poisto
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com