Добавьте путь bash script к пути
Я хочу добавить небольшой script в linux PATH, поэтому мне не нужно фактически запускать его там, где он физически размещен на диске.
script довольно прост - это предоставление доступа apt-get через прокси-сервер, который я сделал так:
#!/bin/bash
array=( [email protected] )
len=${#array[@]}
_args=${array[@]:1:$len}
sudo http_proxy="http://user:[email protected]:port" apt-get $_args
Затем я сохранил это как apt-proxy.sh, установил его на + x (chmod), и все работает нормально, когда я нахожусь в каталоге, где находится этот файл.
Мой вопрос: как добавить этот apt-proxy в PATH, чтобы я мог называть его так, как если бы он был реальным apt-get? [из любого места]
Ищете решения для командной строки, если вы знаете, как сделать с помощью графического интерфейса, это приятно, но не то, что я ищу.
Ответы
Ответ 1
Попробуйте следующее:
- Сохраните script как
apt-proxy
(без расширения .sh
) в некотором каталоге, например ~/bin
.
- Добавьте
~/bin
к вашему PATH
, набрав export PATH=$PATH:~/bin
- Если вам это нужно, добавьте последнюю строку в
~/.bashrc
. Если вы используете zsh
, добавьте его вместо ~/.zshrc
.
- Затем вы можете просто запустить
apt-proxy
с вашими аргументами, и он будет работать где угодно.
Обратите внимание, что если вы export
переменная PATH в определенном окне, она не будет обновляться в других экземплярах bash.
Ответ 2
Вы хотите определить этот каталог для переменной пути, а не для фактического двоичного файла, например
PATH=$MYDIR:$PATH
где MYDIR
определяется как каталог, содержащий ваш двоичный файл, например
PATH=/Users/username/bin:$PATH
Вы должны поместить это в свой запуск script, например..bashrc, так что он запускает время, когда вызывается процесс оболочки.
Обратите внимание, что порядок важен, и PATH оценивается таким образом, что если script, соответствующее вашему имени, находится в более ранней записи в переменной пути, то тот, который вы выполните. Таким образом, вы можете назвать свой script как apt-get
и поместить его ранее в путь. Я бы этого не сделал, так как это сбивало с толку. Вместо этого вы можете исследовать псевдонимы оболочки.
Я также отмечаю, что вы говорите, что он отлично работает в вашем текущем каталоге. Если вы имеете в виду, что у вас есть текущий каталог на вашем пути (.
), то это потенциальный риск для безопасности. Кто-то может поместить в каталог некоторый троянский вариант общей утилиты (например, ls
), затем перейдите в cd to
этот каталог и запустите его непреднамеренно.
Ответ 3
сделать псевдоним для исполняемого файла в файле ~/.bash_profile, а затем использовать его из любого места или вы можете указать каталог, содержащий исполняемые файлы, которые нужно запускать из любого места, и которые будут делать трюк для вас.