J'ai un script:
#!/bin/bash
echo "$(dirname $(readlink -e $1))/$(basename $1)"
qui se trouve ici: /home/myuser/bin/abspath.sh
qui a des autorisations d'exécution.
Si je cours, echo $PATH
j'obtiens ce qui suit:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/myuser/bin
Je souhaite pouvoir, depuis n'importe quel répertoire, appeler abspath <some_path_here>
et appeler mon script. J'utilise bash, qu'est-ce que je fais mal?
linux
shell
shell-scripting
guépard
la source
la source
cd $HOME/bin ; ln -s abspath.sh abspath
. Cela vous permet de conserver l'extension correcte pour le script et d'avoir un outil nommé comme vous le souhaitez. (Vous pourriez dans un futur proche, remplacer votre script shell par un script python, par exemple ...)Ce code est suffisamment petit pour que je le code comme une fonction shell:
Et oui, vous voulez toutes ces citations.
la source
définissez un alias en ajoutant votre commande dans le fichier .bashrc.
Et n'oubliez pas de vous procurer le fichier.
la source
Je renommerais votre script bash pour
abspath
ensuite le déplacer dans lebin
répertoire. Vous serez en mesure d'appelerabspath
de n'importe où alorsla source
Une troisième option consiste à créer un alias appelé abspath qui pointe vers votre script abspath.sh.
la source