Если вы наберете echo $PATH
, вы увидите список каталогов, которые будут проверяться в порядке, для исполняемых файлов. Ваш текущий путь, вероятно, не в этом списке, из соображений безопасности *. Чтобы выполнить файл в текущем каталоге, который написан .
, используйте ./myscript
.
* Хотя это может показаться неудобным, есть очень хорошая причина требуя явного указания текущего каталога, если вы хотите, чтобы выполнить там файл. Предположим, что были не случай, и вы могли просто ввести имя файла для выполнения версии в текущем каталоге. Теперь представьте, что кто-то должен был создать сценарий в этом каталоге под названием ls
, содержимое которого было rm *
. Хуже того, вредоносный скрипт под названием ssh
может записывать ваши учетные данные.
Вы можете изменить это поведение, изменяя переменную PATH
включить текущий каталог, как это: export PATH=$PATH:.
(для поиска текущего каталога в прошлом), или export PATH=.:$PATH
(на первый поиск в текущем каталоге). Но вы должны знать об угрозах безопасности, а затем решить, что это хорошая идея.
Вот почему, по умолчанию, Linux система должна никогда включает .
в PATH
для корневого пользователя — единственным, что хуже, чем выполнение вредоносного файла выполняют вредоносный файл, когда у вас есть права администратора.
Попробуйте './Myscript'. –