Мне интересно, есть ли Unix-эквивалент для переменной среды Windows PATHEXT
.
Для тех, у кого нет фона Windows: добавление суффикса файла PATHEXT
позволяет мне выполнять скрипт без ввода этого суффикса в cmd.exe. Например, на моем компьютере с Windows PATHEXT содержит суффикс, .pl
и когда я хочу выполнить скрипт Perl в cmd.exe, я просто могу напечатать, my-script
и он запускается. Тем не менее, для того , чтобы выполнить один и тот же сценарий в Баш, мне нужно написать полное имя: my-script.pl
.
Поскольку в настоящее время я работаю как с Windows, так и с Unix, я почти всегда попадаюсь в ловушку, когда забываю вводить суффикс при переходе в окно Unix.
shell
environment-variables
Рене Ниффенеггер
источник
источник
.sh
предшествует.pl
,foo.sh
будет запущен. stackoverflow.com/a/7839178/180275Ответы:
короткий: нет
длиннее: сценарии оболочки требуют полного имени файла, но вы можете определить псевдонимы для ваших команд, чтобы ссылаться на них под разными именами. Например
источник
Самое простое решение - просто не использовать расширения для ваших скриптов. Они не нужны и служат только для идентификации типа сценария для вас, но не для компьютера. В то время как Windows использует расширения для определения типа файла, системы * nix (за очень немногими исключениями, такими как
gzip
) - нет.Обратите внимание, что двоичные файлы не имеют
.exe
расширения в * nix, они просто называютсяfoo
, а неfoo.exe
. Итак, если вы хотитеfoo.pl
быть исполняемым какfoo
, просто сохраните файл какfoo
на первом месте.В качестве альтернативы, если вам действительно нужны расширения по какой-либо причине, перейдите в любой каталог, в котором вы сохраняете свои скрипты, и запустите это:
Это будет перебирать все файлы с расширениями и для каждого
foo.ext
из них будет создавать ссылку,foo
которая указывает наfoo.ext
. Обратите внимание, что это не удастся, если у вас есть несколько сценариев с тем же именем, но с разными расширениями.источник
Если вы действительно хотите это сделать, есть способ. Добавьте следующее в конец
.bashrc
вашего домашнего каталога и задайтеPATHEXT
имена расширений с точками, разделенными:
. (Изменено, чтобы включить точки, соответствующие поведению Windows.) Используйте его на свой страх и риск.Также помните, что вы можете использовать tab для завершения имени команды, если нет другой команды, также начинающейся с
my-script
.источник