Am'm de învățare prin acest tutorial pentru a învăța bash script pentru a automatiza câteva sarcini pentru mine. Am'm conectarea la un server folosind chit.
Scenariul, situată în.../Documente/LOG`, este:
#!/bin/bash
# My first script
echo "Hello World!"
Și am executat următoarele pentru citire/scriere/executare permissions
chmod 755 my_script
Apoi, când am introduceți ./my_script
, I'm a dat eroare in titlu.
Unele întrebări similare vrut să văd așa ceva, deci cred că ar putea ajuta:
which bash
/bin/bash
și
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/bin/mh
Am încercat adăugarea de actualul director de la "CALE", dar asta nu't de lucru..
Am văzut această problemă, atunci când crearea de script-uri în Windows env și apoi portare peste pentru a rula pe un mediu Unix.
Încercați să rulați dos2unix
pe script-ul:
http://dos2unix.sourceforge.net/
Sau doar rescrie scenariul în Unix mediu, utilizând " vi " și de testare.
Unix utilizează diferite capetele de linie astfel încât poate't citi fișierul creat pe Windows. Prin urmare, este de a vedea ^M ca un caracter ilegal.
Dacă doriți să scrie un fișier de pe Windows și apoi port peste, asigurați-vă că editorul este setat pentru a crea fișiere în format UNIX.
În notepad++ în partea din dreapta jos a ecranului, se spune în document format. În mod implicit, se va spune Dos\Windows
. Să-l schimbe du-te la
Executați următoarea comandă în terminal
sed -i -e 's/\r$//' scriptname.sh
Apoi, încercați
./scriptname.sh
Acesta ar trebui să funcționeze.
Dacă utilizați Sublime Text pe Windows sau Mac pentru a edita script-uri:
Dați Click pe View > capetele de Linie > Unix
și save fișierul din nou.
problema este cu dos sfârșit de linie. Următoarele va converti pentru unix
dos2unix file_name
NB: poate fi necesar să instalați dos2unix prima cu yum install dos2unix`
un alt mod de a face asta este cu ajutorul sed
comanda pentru a căuta și înlocui dos sfârșit de linie de caractere în format unix:
$sed -i -e 's/\r$//' your_script.sh
Pentru Eclipse utilizatori, puteți fie să modificați fișierul de codare direct din meniul File > Converti Delimitatori Pentru a > Unix (DACĂ, \n, 0Α, ¶)
:
Sau schimba `Nou fișier text, linie delimitator " la "Alte: Unix" pe " Fereastra > Preferințe > General > spațiu de Lucru cu panou de comanda:
Am fost în măsură să rezolve problema prin deschiderea script-ul în Gedit și de economisire cu buna Sfârșit de Linie
opțiune:
Fișier > Salvare Ca...
În partea din stânga jos a "Save as" prompt, există meniuri drop-down pentru Codificarea caracterelor și Sfârșit de Linie. Schimba Sfârșit de Linie de la Windows " la " Unix/Linux` apoi Salvați.
![gedit "Salvare Ca" prompt]]1
Am dezvolta pe Windows și Mac/Linux în același timp și am evita acest lucru ^M-eroare de către pur și simplu de funcționare scenariile mele așa cum am făcut în Windows:
$ php ./my_script
Nu este nevoie sa schimbati capetele de linie.