Чрез този урок се уча да научавам bash scripts да автоматизирам няколко задачи за мен. Свързвам се със сървър с помощта на putty.
Скриптът, който се намира в .../Documents/LOG
, е:
#!/bin/bash
# My first script
echo "Hello World!"
И изпълних следното за разрешения за четене/запис/изпълнение
chmod 755 my_script
След това, когато въведа ./my_script
, получавам грешката, посочена в заглавието.
Някои подобни въпроси искаха да видят тези, така че мисля, че могат да помогнат:
which bash
/bin/bash
и
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/bin/mh
Опитах се да добавя текущата директория към PATH
, но това не работи..
Срещал съм този проблем при създаване на скриптове в Windows env и последващото им пренасяне за работа в среда на Unix.
Опитайте да стартирате dos2unix
за скрипта:
http://dos2unix.sourceforge.net/
Или просто пренапишете скрипта във вашия Unix env с помощта на vi
и тествайте.
Unix използва различни окончания на редовете, така че не може да'прочете файла, който сте създали в Windows. Следователно той вижда ^M като незаконен символ.
Ако искате да напишете файл в Windows и след това да го пренесете, уверете се, че редакторът ви е настроен да създава файлове във формат UNIX.
В Notepad++ в долния десен ъгъл на екрана ви се показва форматът на документа. По подразбиране там е записано Dos\Windows
. За да го промените, отидете на
Ако използвате Sublime Text в Windows или Mac, за да редактирате скриптовете си:
Кликнете върху Преглед > Краища на редове > Unix
и запазете файла отново.
Това се дължи на редактирането на файла в Windows и импортирането и изпълнението му в Unix.
dos2unix -k -o filename
трябва да свърши работа.