Просто для удовольствия:
. run.sh
--- «Исходный» код в run.sh. Обычно это используется для получения переменных среды в текущих процессах оболочки. Вы, вероятно, не хотите этого для скрипта с именем run.sh
.
./run.sh
--- Выполнить скрипт run.sh
в текущем каталоге. Обычно текущий каталог не находится в пути по умолчанию (см. $PATH
), поэтому вам необходимо явно указать относительное местоположение. Символ .
используется иначе, чем в элементе № 1.
. ./run.sh
--- Источник сценария run.sh
в текущем каталоге. Это сочетает в себе использование .
из предметов № 1 и № 2.
sh run.sh
--- Используйте интерпретатор оболочки sh
на run.sh
. Оболочка Bourne обычно используется по умолчанию для запуска сценариев оболочки, поэтому она, вероятно, совпадает с элементом № 2, за исключением того, что она находит первый run.sh
в $PATH
, а не текущий в текущем каталоге.
sh ./run.sh
--- И это обычно то же самое, что и № 2, за исключением слова.
Интерфейсы командной строки, такие как различные интерпретаторы оболочки, имеют тенденцию быть очень эзотерическими, так как им нужно упаковывать много смысла в небольшое количество символов. В противном случае ввод текста занимает слишком много времени.
С точки зрения обучения, я бы предложил использовать bash
или ksh
и не позволять никому уговаривать вас на что-то другое, пока вы не почувствуете себя комфортно. Пожалуйста, не учитесь с csh
, иначе вам придется слишком много учиться, когда вы начнете с оболочки типа Борна позже.
Кроме того, записи crontab
немного сложнее, чем другие варианты использования оболочки. Я думаю, вы потеряли время, потому что ваша среда была настроена иначе, чем в командной строке. Я бы предложил начать где-нибудь еще, если это возможно.