Как запустить мою собственную программу, не указывая ее путь

Я думаю, что Вы спрашиваете, как вставить отдельные строки, от которых вытягивают xargs'stdin посреди команды, вместо того, чтобы просто вставлять его на конце всегда. Если так, -I флаг берет a replacement-string аргумент; xargs затем заменит replacement-string в команде со строкой, считанной из stdin:

$ cat file | xargs -I foobar curl http://example.com/foobar.tar
11
02.09.2011, 01:38
1 ответ

То, что Вы ищете, PATH переменная окружения. Это говорит оболочку, где это должно искать программы. Вы видите текущее значение того переменного использования echo:

echo "$PATH"

Теперь... Лучшая практика, если Вы хотите использование некоторая новая программа, должна установить его с помощью программы управления пакетом для распределения. Но в этом случае, я предполагаю, что Вы имеете дело с программой, которая не выполнена никаким доступным пакетом программного обеспечения. Для таких программ у Вас есть две опции:

  1. Установите программу в масштабе всей системы в месте, куда Ваша система не помещает файлов, установленных от пакетов. В большинстве систем такие "безопасные" папки включают /usr/local/bin/ и /opt/bin/ - это должно уже быть в Вашем PATH. (Посмотрите в этих папках и если существует много файлов в них, то это - неправильное место для помещения собственной программы, и необходимо посмотреть на другие папки, перечисленные в Вашем PATH.)
  2. Измените Ваш PATH переменная. Это менее безопасно, потому что это определяет дополнительные папки, где программы могут быть сохранены, и кто-то мог бы сыграть шутку на Вас, поместив его собственную программу там, чтобы Вы работали.

    Можно изменить PATH переменная любой временно, с помощью

    export PATH="$PATH:/path/to/your/executable"
    

    (возражайте $PATH после =), или постоянно путем добавления вышеупомянутой строки к Вашему .bashrc файл (принимающий Вас используют bash).

15
27.01.2020, 19:58

Теги

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