Tato otázka již má odpovědi zde :
Komentáře
- Související: linka shebang nefunguje s cr-lf
- … protože používáte
vi
můžete mezi konci řádků přepínat pomocí:set ff=unix
a:set ff=dos
- existuje spousta otázek týkajících se této ČR, pokud hledáte
^M
Co je^M
a jak zbavím se toho? , Unixový skript připojí ^ M na konec každého řádku , -bash: ./my_script: / bin / bash ^ M : špatný tlumočník: Žádný takový soubor nebo adresář … - Hlasuji ', protože ' sa duplikát, jak ukazuje @phuciv.
- Ohledně vaší nedávné úpravy této staré otázky: Druhá otázka označená jako duplikát obsahuje odpovědi, které nepoužívají
dos2unix
.
Odpověď
Zdá se, že máte konce řádků ve stylu Windows (CRLF, ^ M ^ J ) místo zakončení řádků ve stylu unixu (LF, ^ J). Zkuste dos2unix
dos2unix delete_7gg.sh
a poté spusťte jako obvykle
Od člověka:
dos2unix – převodník formátu textového souboru DOS / MAC na UNIX
tr -d '\r' < input > output
.