Ik'ben door deze tutorial aan het leren om bash scripts te leren om een paar taken voor mij te automatiseren. Ik'm maak verbinding met een server met behulp van putty.
Het script, dat zich in .../Documents/LOG
bevindt, is:
#!/bin/bash
# My first script
echo "Hello World!"
En ik heb het volgende uitgevoerd voor lees/schrijf/uitvoer rechten
chmod 755 my_script
Als ik dan ./my_script
invoer, krijg ik de fout die in de titel staat.
Enkele soortgelijke vragen wilden deze zien, dus ik denk dat ze kunnen helpen:
which bash
/bin/bash
en
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/bin/mh
Ik heb geprobeerd de huidige directory aan PATH
toe te voegen, maar dat werkt niet...
Ik heb dit probleem gezien bij het maken van scripts in Windows env en het dan overzetten om op een Unix omgeving te draaien.
Probeer dos2unix
op het script uit te voeren:
http://dos2unix.sourceforge.net/
Of herschrijf het script in je Unix env met vi
en test.
Unix gebruikt andere regeleinden dus kan het bestand dat je op Windows hebt gemaakt niet lezen. Daarom ziet het ^M als een illegaal karakter.
Als je een bestand onder Windows wilt schrijven en dan wilt overzetten, zorg er dan voor dat je editor is ingesteld om bestanden in UNIX formaat te maken.
In notepad++, rechtsonder in het scherm, staat het document formaat. Standaard staat er DosWindows
. Om dit te veranderen ga naar
Als u Sublime Text op Windows of Mac gebruikt om uw scripts te bewerken:
Klik op View > Line Endings > Unix
en save het bestand opnieuw.