На этот вопрос уже есть ответ здесь:
Сегодня я выполняю скрипт .sh. Он выполняется с префиксом "./.sh, я немного запутался, потому что он также выполняется без ./. но почему это необходимо использовать ./
Не могли бы вы объяснить мне, почему ./ используется для запуска .sh скриптов?
Эти ./
необходим для сообщения интерпретатора удара, где сценарий расположен. Существует фиксированный набор каталогов, которые интерпретатор удара проверит для выполнения команды.
, Если Ваш сценарий не находится в одном из этих каталогов, чем он, не найдет Вас сценарием, если Вы не определяете путь. Эти ./
говорит интерпретатору удара, что сценарий находится в текущем каталоге.
Вы могли также выполнить сценарий из любого другого каталога при помощи полного пути.
, например, ./script.sh
из /path/to
совпадает с выполнением /path/to/script.sh
отовсюду, если сценарий расположен в /path/to
.
можно работать echo $PATH
для получения списка всех каталогов, которые проверит интерпретатор удара. Если Вы переместите Вас сценарий или поместите символьную ссылку в одну каталоги, то Вы будете в состоянии выполнить ее просто использование имени файла script
.
Используя ". /", средства, что Вы просите, чтобы Ваш файл был runned. Но, Ваш файл должен быть исполняемым файлом, еще это не будет работать.
, Если Ваш файл не является исполняемым файлом, необходимо будет снабдить префиксом команду программу, предназначенную для выполнения его. Для Вашего sh сценария это, вероятно, будет: "/bin/sh myscript.sh".