Как опустить «./» при запуске скриптов в текущем каталоге

10

На некоторых уроках через Интернет они могут запустить скрипт в текущем каталоге, не делая:

./script

Как вы это опускаете? Я использую CentOS 5.6 x64. Я хочу запустить это так

script

Айван Мончеллер
источник
3
Обратите внимание, что это почти всегда плохая идея, особенно для пользователя root.
Дэвид Шварц
1
Какова вся цель / история позади ./ в любом случае?
Пит
Мне просто любопытно, почему это всегда нужно иметь ./
Айван Монселлер,
Последний комментарий может быть отдельным вопросом ИМХО - это важная вещь для понимания работы программ в целом!
rozcietrzewiacz
4
@Pete (и Aivan): в Linux / UNIX оболочка запускает программы только в том случае, если ей известен путь к ним (либо с помощью указанного вами пути, либо путем поиска переменной PATH). Он не предполагает, что вы хотите искать в текущем каталоге, как в Windows. Он ищет именно то, что вы просите его искать через переменную PATH. '' ссылка на текущий каталог Поэтому, когда вы вводите «./script.sh», вы указываете ему путь.
Касиус

Ответы:

26

Любой из:

  1. Добавьте текущий рабочий каталог в PATH: PATH=${PATH}:.(это считается угрозой безопасности)
  2. Точно добавьте путь, содержащий ваш скрипт, в переменную PATH (это не представляет угрозы безопасности, если доступ для записи в этот каталог ограничен)
  3. Поместите ваш сценарий в то место, куда уже указывает PATH (~ / bin, / usr / local / bin, ...)

Последний вариант, возможно, самый лучший.

Nils
источник