J'ai donc essayé et créé un alias
in .bashrc
. Cependant, lorsque je teste la commande, j'obtiens:
[rkahil@netmon3 ~]$ menu
-bash: menu: command not found
Voici ce que j'ai dans le .bashrc
dossier:
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
alias menu='./menuScript.sh'
alias vi='vim'
Le plus drôle, c'est que lorsque j'ai créé l'alias vi
, cela a fonctionné. Mais le menu ne fonctionne pas. J'ai recherché les messages précédents sur UnixStackExchange et tenté de suivre d'autres messages, mais en vain. Quelqu'un d'autre a-t-il des suggestions?
./menuScript.sh: command not found
No such file or directory
, ce qui n'est toujours pas la même chose que l'erreur de l'OP. Le point est toujours valable - il serait préférable d'avoir un chemin absolu à moins que l'alias ne soit toujours utilisé qu'à partir du répertoire oùmenuScript.sh
réside.Réponses:
Vous devriez essayer avec
alias menu='bash ./menuScript.sh'
. Je ne suis pas actuellement sur une machine Linux, je ne peux donc pas le tester moi-même, mais cela devrait fonctionner. Lorsque vous appelez l'alias, il ne sait pas quoi faire du chemin, vous devez donc inclure lebash
au début.Et la réinitialisation du terminal aide après la modification.
la source
menuScript.sh
n'ait pas étéchmod
édité en exécutable, auquel cas le message d'erreur aurait été «Autorisation refusée». Je soupçonne que forcer une relecture du.bashrc
fichier est la réponse. ………………… PS Le shell sait quoi faire du chemin de la même manière que si l'utilisateur tape./menuScript.sh
- en essayant d'exécuter le fichier.Quand tu fais
vous créez un alias qui dit "ce fichier" mais ne dit pas quoi faire avec.
Cependant, si vous le faites
ou
Vous dites exécuter ce fichier.
la source
Vous êtes-vous souvenu d'avoir source votre fichier ~ / .bashrc après avoir apporté les modifications? Parce que les modifications prennent effet dans votre fichier .bashrc après le redémarrage de votre ordinateur ou simplement le sourcing du fichier.
la source
.bashrc
, faites ce qui suit ...". D'un autre côté, les questions de clarification (par exemple, "Avez-vous oublié de…?") Semblent plus adaptées aux commentaires. Il ne faudrait pas beaucoup de reformulation pour que ce message semble beaucoup plus adapté à une réponse.source ~/.bashrc
ou. ~/.bashrc
, vous pouvez également ouvrir un autre shell également. C'est aussi simple que ça. Aucun redémarrage requis.La raison pour laquelle cela a fonctionné
vim
est parce que c'est un programme déjà appelable sans chemin direct. Vous n'avez pas à dire explicitement "je veux que cela soit exécuté en tant que programme" car il envim
est déjà un. Il est codé en dur dans le système d'exploitation que lorsqu'il reçoit la commandevim
, allez exécuter le fichier/usr/bin/vi
ou où que se trouve le programme réel.la source
vim
disponible dans le$PATH
qui peut être un exécutable binaire, un script exécutable ou même un lien symbolique vers un autre programme. Si vous supprimez l'entrée pourvim
elle cesse d'être disponible pour les utilisateurs.ifvi
qui vit dans mon$HOME/bin
(qui se trouve être dans le mien$PATH
). Je l'utilise simplement de la même manière que je pourrais exécuter un binaire installé par le système. Peu importe que ce soit un programme personnalisé.Il y a deux problèmes avec l'alias
Il vous oblige à être dans un répertoire particulier lorsque vous appelez l'alias. Si vous êtes dans un répertoire où
menuScript.sh
n'existe pas, l'alias ne s'exécutera pas.Il serait préférable de spécifier le chemin absolu complet du
menuScript.sh
script lors de la définition de l'alias, par exempleou similaire.
Comme d'autres l'ont déjà dit, une autre raison pour laquelle l'alias peut échouer est que le script n'est pas exécutable ou qu'il a une
#!
ligne invalide . Assurez-vous que le script est exécutable avecet que la première ligne du script est
ou quel que soit le chemin d'accès
bash
(ou quel que soit le shell pour lequel le script est écrit) sur votre système.la source