Почему "./" используется для запуска скриптов ".sh" в Unix? [дубликат]

Сегодня я выполняю скрипт .sh. Он выполняется с префиксом "./.sh, я немного запутался, потому что он также выполняется без ./. но почему это необходимо использовать ./

Не могли бы вы объяснить мне, почему ./ используется для запуска .sh скриптов?

4
задан 20 May 2014 в 17:38

2 ответа

Эти ./ необходим для сообщения интерпретатора удара, где сценарий расположен. Существует фиксированный набор каталогов, которые интерпретатор удара проверит для выполнения команды.

, Если Ваш сценарий не находится в одном из этих каталогов, чем он, не найдет Вас сценарием, если Вы не определяете путь. Эти ./ говорит интерпретатору удара, что сценарий находится в текущем каталоге.

Вы могли также выполнить сценарий из любого другого каталога при помощи полного пути.

, например, ./script.sh из /path/to совпадает с выполнением /path/to/script.sh отовсюду, если сценарий расположен в /path/to.

можно работать echo $PATH для получения списка всех каталогов, которые проверит интерпретатор удара. Если Вы переместите Вас сценарий или поместите символьную ссылку в одну каталоги, то Вы будете в состоянии выполнить ее просто использование имени файла script.

7
ответ дан 17 November 2019 в 14:06

Используя ". /", средства, что Вы просите, чтобы Ваш файл был runned. Но, Ваш файл должен быть исполняемым файлом, еще это не будет работать.

, Если Ваш файл не является исполняемым файлом, необходимо будет снабдить префиксом команду программу, предназначенную для выполнения его. Для Вашего sh сценария это, вероятно, будет: "/bin/sh myscript.sh".

0
ответ дан 17 November 2019 в 14:06

Другие вопросы по тегам:

Похожие вопросы: