<åt sidan class = "s-meddelande s-notice__info js-post-notice mb16 "role =" status ">
Denna fråga har redan svar här :
Kommentarer
- Relaterat: shebang-linjen fungerar inte med cr-lf
- … eftersom du använder
vi
, du kan växla mellan radslut med:set ff=unix
och:set ff=dos
- det finns en många frågor om det CR om du googlar för
^M
Vad är^M
och hur blir jag av med det? , Unix-skript läggs till ^ M i slutet av varje rad , -bash: ./my_script: / bin / bash ^ M. : dålig tolk: Ingen sådan fil eller katalog … - Jag ' jag röstar detta eftersom det ' en duplikat som @phuciv visar.
- Angående din senaste redigering av den här gamla frågan: Den andra frågan markerad som en duplikat innehåller svar som inte använder
dos2unix
.
Svar
Du verkar ha rader i Windows-stil (CRLF, ^ M ^ J ) istället för linjeavslut i unix-stil (LF, ^ J). Försök med dos2unix
dos2unix delete_7gg.sh
kör sedan som vanligt
Från man:
dos2unix – DOS / MAC till UNIX-textfilformatkonverterare
tr -d '\r' < input > output
.