OSX не может найти исполняемый файл в текущем каталоге - PullRequest
0 голосов
/ 01 апреля 2012

Я застрял, когда chmod файл.

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

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

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

Ответы [ 2 ]

2 голосов
/ 01 апреля 2012

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


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

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

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

2 голосов
/ 01 апреля 2012

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

...