Ajouter un script bash pour chemin
Je veux ajouter un petit script pour linux CHEMIN donc je n'ai pas réellement exécuté à l'endroit où il est placé physiquement sur le disque.
Le script est assez simple consiste à donner apt-get accès par l'intermédiaire d'un proxy j'ai fait comme ceci:
#!/bin/bash
array=( $@ )
len=${#array[@]}
_args=${array[@]:1:$len}
sudo http_proxy="http://user:password@server:port" apt-get $_args
Ensuite, j'ai sauvé ce que apt-proxy.sh, mis à +x (chmod) et tout fonctionne bien quand je suis dans le même répertoire que ce fichier est placé.
Ma question est : comment faire pour ajouter cette apt-proxy à CHEMIN si je peux appeler ça comme s'il était le véritable apt-get ? [partout]
À la recherche pour la ligne de commande seulement des solutions, si vous savez comment faire, par GUI de sa belle, mais pas ce que je suis à la recherche d'.
sudo ... apt-get "${@:2}"
est probablement plus simple et plus robuste que d'essayer de construire un deuxième tableau.En fonction de vos besoins/options, soit en pointant
PATH
du script (déjà détaillé dans les réponses) ou déplacer le script à un emplacement déjà disponible à la fois d'atteindre le résultat souhaité. J'ai l'habitude de déposer un script dans /usr/local/bin
.Merci @chepner, je suis nouveau sur le bash de programmation, j'ai donc apprécier de telles suggestions pour améliorer mon code.
OriginalL'auteur Mansueli | 2013-11-18
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
apt-proxy
(sans le.sh
de l'extension) dans un répertoire, comme~/bin
.~/bin
à votrePATH
, en tapantexport PATH=$PATH:~/bin
~/.bashrc
. Si vous utilisezzsh
, puis l'ajouter à~/.zshrc
à la place.apt-proxy
avec vos arguments, et il sera exécuté n'importe où.Notez que si vous
export
la variable de CHEMIN d'accès dans une fenêtre spécifique, il ne sera pas mise à jour dans d'autres bash instances.PATH
que c'est (très probablement) déjà marqué de leur exportation. Aussi, il pourrait être préférable de ajouter votre personnel des chemins, plutôt que de append existantsPATH
.OriginalL'auteur jlhonora
Vous souhaitez définir répertoire à la variable path, pas le binaire par exemple
où
MYDIR
est défini comme le répertoire contenant vos données binaires par exempleVous devez mettre ceci dans votre script de démarrage par exemple .bashrc telle qu'elle s'exécute à chaque fois qu'un processus de shell est invoqué.
Remarque que l'ordre est important, et le CHEMIN est évalué que si un script correspondant à votre nom est trouvé dans une entrée plus précoce dans la variable path, alors que c'est celui que vous allez exécuter. Si vous pourrait nom de votre script
apt-get
et de le mettre plus haut dans le chemin. Je ne le ferais pas, car c'est source de confusion. Vous pouvez enquêter sur les aliases à la place.Je note également que vous dites, il fonctionne très bien à partir de votre répertoire courant. Si par là vous voulez dire que vous avez le répertoire courant dans votre chemin d'accès (
.
) alors que c'est un risque de sécurité potentiel. Quelqu'un pourrait mettre un cheval de troie variante d'un utilitaire commun (par exemple,ls
) dans un répertoire, vous obtenez alors l'cd to
ce répertoire et exécuter par inadvertance.OriginalL'auteur Brian Agnew
faire un alias pour le fichier exécutable dans le ~/.bash_profile fichier et ensuite l'utiliser à partir de n'importe où ou vous pouvez source le répertoire contenant les exécutables que vous devez exécuter à partir de n'importe où et va faire l'affaire pour vous.
OriginalL'auteur Abhi