Jeg lærer gjennom denne opplæringen å lære bash-skript for å automatisere noen få oppgaver for meg. Jeg kobler til en server ved hjelp av kitt.
Skriptet, som ligger i .../Documents/LOG
, er:
#!/bin/bash
# My first script
echo "Hello World!"
Og jeg utførte følgende for lese-/skrive-/kjøretillatelser
chmod 755 my_script
Deretter, når jeg skriver inn ./my_script
, får jeg feilen gitt i tittelen.
Noen lignende spørsmål ønsket å se disse, så jeg tror de kan hjelpe:
which bash
/bin/bash
og
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin:/usr/games:/usr/bin/mh
Jeg prøvde å legge til nåværende katalog til PATH
, men det fungerer ikke...
Jeg har sett dette problemet når jeg oppretter skript i Windows env og deretter porterer over for å kjøre på et Unix-miljø.
Prøv å kjøre dos2unix
på skriptet:
http://dos2unix.sourceforge.net/
Eller bare skriv om skriptet i Unix-env ved hjelp av vi
og test.
Unix bruker forskjellige linjeavslutninger, så det kan ikke lese filen du opprettet på Windows. Derfor ser den ^M som et ulovlig tegn.
Hvis du vil skrive en fil på Windows og deretter portere over, må du sørge for at redigeringsprogrammet er satt til å opprette filer i UNIX-format.
I notisblokk++ nederst til høyre på skjermen står dokumentformatet. Som standard vil det stå Dos\Windows
. For å endre det, gå til
Hvis du bruker Sublime Text på Windows eller Mac for å redigere manus:
Klikk på View > Line Endings > Unix
og lagre filen igjen.