3 votes

Alias avec gnome-terminal très bizarre

Voici une ligne de mon fichier d'alias qui fait que chaque fois que j'ouvre mon terminal, jasonaccomp s'ouvre dans l'éditeur vim.

alias acc='gnome-terminal -e "bash -c 'cd ~/Downloads; vim jasonaccomp'"'

après avoir quitté la doc vim, je vois

bash: alias: /home/master/Downloads: not found

Tout cela avant même que je n'appelle l'acc. Pour aggraver encore les choses, le code suivant, lorsqu'il est exécuté dans mon répertoire personnel, fonctionne exactement comme je le souhaiterais. Il ouvre un nouveau terminal qui ouvre jasonaccomp et quand j'ai fini d'éditer, le terminal se ferme.

gnome-terminal -e "bash -c 'cd ~/Downloads; vim jasonaccomp'"

De même, la commande acc lorsqu'elle est tapée me donne > avec un curseur clignotant. Comment faire pour ne plus avoir à éditer jasonaccomp à chaque fois que j'ouvre un nouveau terminal ? De plus, comment faire pour que acc fasse ce que la ligne de code ci-dessus fait.

8voto

heemayl Points 85741

Votre problème est dû à une mauvaise utilisation des guillemets simples, précisément des guillemets simples à l'intérieur des guillemets simples.

De man bash :

L'insertion de caractères entre guillemets simples préserve la valeur littérale de de chaque caractère entre guillemets. [ ] entre des guillemets simples, même s'ils sont précédés d'une barre oblique inverse.

Changez donc les guillemets simples de bash -c entre guillemets doubles échappés :

alias acc='gnome-terminal -e "bash -c \"cd ~/Downloads; vim jasonaccomp\""'

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X