Je cherche un moyen de faire fonctionner l'alias suivant pour n'importe quel nom de fichier.
alias dim='cd /home/jason/Documents; vim *the desired file*; cd'
Je me demande s'il y a un moyen de changer cet alias pour que je puisse taper n'importe quel nom de fichier en tant que tel:
dim *the desired file*
Et obtenez toujours le même résultat. Fondamentalement, existe-t-il un moyen d'appeler ce qui est tapé après le nom d'alias dans l'alias lui-même? Quelque chose comme:
alias dim='cd /home/jason/Documents; vim <what is typed after alias>; cd'
Réponses:
Non, vous ne pouvez pas faire cela en utilisant des alias de shell. Vous devez utiliser une fonction.
Voici une fonction simple pour faire le travail:
La fonction
dim
prendra un nom de fichier comme argument. Vous pouvez mettre cet extrait de code à la fin de votre~/.bashrc
fichier, puis l'exécuter en tant que:Remplacez-le
file.txt
par le nom de fichier que vous souhaitez.Pour l'exécuter à partir de la session shell actuelle,
source
le~/.bashrc
fichier commence par:la source
$1
indique le premier paramètre positionnel ou argument de la fonction..pensez-y comme un moyen de donner une entrée à une fonction ou un script ..comme tous les langages de programmationbash
utilisent également cela .... vous trouver de nombreuses ressources à ce sujet sur Google ..Pas avec des alias, utilisez plutôt des fonctions.
Depuis la page de manuel de Bash :
Votre fonction pourrait donc être:
la source
cd
pour vous amener à votre répertoire personnel;cd ..
monte d'un niveau.cd -
vous ramène au répertoire précédent à partir duquel vous avezcd
édité.$*
c'est comme$1 $2 $3...
donner simplement toute la liste à vim, pas le premier argument que vous tapez. Et comme l'a dit Chriki,cd -
reviendra au répertoire précédent (celui que vous étiez lorsque vous avez appelé la fonction).