2012-04-01 2 views
0

Я застрял в chmod файле.osx не может найти исполняемый файл в текущем каталоге

В нижней части this page, о "Сценарии", я сделал упражнение в соответствии с руководством. Но появилась ошибка en. Mac OS X, информацию о командной строке, приведенную ниже.

$ nano myscript 
$ chmod 755 myscript 
$ myscript 
-bash: myscript: command not found 

Я смущен. Не могли бы вы указать на вопрос? Любые ответы будут оценены. Спасибо!

+2

Попробуйте './Myscript'. –

ответ

2

. не на вашем пути. Используйте ./myscript.

+0

Привет, Адам и Дэйв, я пытался использовать ./myscript в командной строке в соответствии с вашими предложениями, теперь это работает. Спасибо вам два! P.S. Я новичок. – pythonperlr

2

Если вы наберете echo $PATH, вы увидите список каталогов, которые будут проверяться в порядке, для исполняемых файлов. Ваш текущий путь, вероятно, не в этом списке, из соображений безопасности *. Чтобы выполнить файл в текущем каталоге, который написан ., используйте ./myscript.


* Хотя это может показаться неудобным, есть очень хорошая причина требуя явного указания текущего каталога, если вы хотите, чтобы выполнить там файл. Предположим, что были не случай, и вы могли просто ввести имя файла для выполнения версии в текущем каталоге. Теперь представьте, что кто-то должен был создать сценарий в этом каталоге под названием ls, содержимое которого было rm *. Хуже того, вредоносный скрипт под названием ssh может записывать ваши учетные данные.

Вы можете изменить это поведение, изменяя переменную PATH включить текущий каталог, как это: export PATH=$PATH:. (для поиска текущего каталога в прошлом), или export PATH=.:$PATH (на первый поиск в текущем каталоге). Но вы должны знать об угрозах безопасности, а затем решить, что это хорошая идея.

Вот почему, по умолчанию, Linux система должна никогда включает . в PATH для корневого пользователя — единственным, что хуже, чем выполнение вредоносного файла выполняют вредоносный файл, когда у вас есть права администратора.

+0

Привет, Адам, это действительно важно для безопасности. Я понял. Большое спасибо! – pythonperlr

Смежные вопросы