#1 Le 26/02/2010, à 20:28
[resolu] créer un alias avec paramètre
Bonjour je souhaiterai créer un allias avec un paramètre, je m'explique :
je voudrai créer un allias 'cdl' pour que ça ailler au dossier spécifié en paramètre et que ça fasse un ls.
J'ai essayé cdl='cd $1 ls' mais ça ne marche pas (j'ai cru voir dans la doc. que les paramètres étaient stockés sous forme de $x).
Quelqu'un pourrait-il m'aider ?
Merci beaucoup !
Dernière modification par antoine4 (Le 27/02/2010, à 15:46)
Hors ligne
#3 Le 26/02/2010, à 21:55
Re : [resolu] créer un alias avec paramètre
Il faut mettre un ; entre les deux commande :
alias cdl='cd $1; ls'
fait ce que veux.
Cordialement,
Guy
En ligne
#4 Le 26/02/2010, à 23:39
Re : [resolu] créer un alias avec paramètre
ceci ne fonctionnera pas, l'argument ne sera pas pris en compte, les alias ne gèrent pas les arguments. En revanche tu peux utiliser une fonction, c'est la solution la plus propre :
function cdl () { cd "$1" ; ls ; }NB. les "…" autour de $1 ont leur importance en cas de caractères spéciaux dans le nom de fichier.
GUL les mardis à Bordeaux : Giroll
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4
Hors ligne
#6 Le 27/02/2010, à 00:12
Re : [resolu] créer un alias avec paramètre
j'avais oublié l'espace entre { et cd (important), c'est corrigé et cela fonctionne ![]()
ps. si tu as déjà défini un alias avec le même nom il faut relancer nouveau terminal sinon l'alias prendra le dessus sur la fonction…
GUL les mardis à Bordeaux : Giroll
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4
Hors ligne
#7 Le 27/02/2010, à 00:17
Re : [resolu] créer un alias avec paramètre
Mais si, mais si, les alias prennent les arguments !
Faut essayer !
Les 2 solutions données fonctionnent avec ; ou |
En ligne
#8 Le 27/02/2010, à 00:19
Re : [resolu] créer un alias avec paramètre
tu peux me donner un exemple gl38 ? et ton shell avec sa version ?
une démo comme quoi les alias ne prennent pas d'argument avec bash :
$ alias testarg="echo $2"
$ testarg a b
a ben revanche
$ function testarg2 () { echo $2; }
$ testarg2 a b
b![]()
les alias ne prennent pas d'argument, le shell remplace juste l'alias par sa définition, donc :
ALIAS arg1 arg2 etc.sera remplacé par
DÉFINITION_DE_L_ALIAS arg1 arg2 etc.GUL les mardis à Bordeaux : Giroll
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4
Hors ligne
#9 Le 27/02/2010, à 00:26
Re : [resolu] créer un alias avec paramètre
l'exemple, c'est celui que j'ai donné plus haut
alias cdl='cd $1; ls'
je peux le mettre en ligne de commande ou dans le .bashrc (et puis je tape source .bashrc).
Si je tape
cdl /home
cdl .
cdl ..
j'obtiens ce qu'on peut attendre de cette commande.
Pour la version, synaptic me dit qu'il a installé bash4.0-5ubuntu2.
Pour être honnête, à 20h40 je ne savais pas que ça marcherait !!
Cordialement,
Guy
En ligne
#10 Le 27/02/2010, à 00:31
Re : [resolu] créer un alias avec paramètre
et bien avec la même version de bash je peux te confirmer que cela ne fonctionne pas…
lance cette suite de commande pour t'en convaincre (dans un teminal tout neuf) :
alias cdl="cd $1; ls"
pwd
cd Documents
cdl ~/Bureau
pwdtiens le dossier n'est pas le bon…
GUL les mardis à Bordeaux : Giroll
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4
Hors ligne
#12 Le 27/02/2010, à 00:47
Re : [resolu] créer un alias avec paramètre
C'est vrai que ça ne change pas de directory à la fin, mais le résultat du ls est bon.
Ça ressemble aux variables locales et globales.
Mais là c'est un peu tard pour que je réfléchisse sérieusement à ces subtilités.
À demain.
En ligne
#13 Le 27/02/2010, à 00:49
Re : [resolu] créer un alias avec paramètre
donc c'est bien ce que je disais ça ne fonctionne pas car ce n'est pas prévu pour…
alias → pas d'arguments (cf ce post)
function → arguments
après vous faites comme vous voulez mais ne vous étonnez pas si ça plante ![]()
ps. pour les tétus :
man bash
ALIASES
[…]
There is no mechanism for using arguments in the replacement text. If
arguments are needed, a shell function should be used (see FUNCTIONS
below).GUL les mardis à Bordeaux : Giroll
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4
Hors ligne
#15 Le 27/02/2010, à 01:01
Re : [resolu] créer un alias avec paramètre
ton alias cdl="cd ; ls" fait ceci :
cdl dossier/
lancer la commande cd ; ls $1 dossier/ :
- un cd → cd sans argument = cd ~/
- ls dossier/ (car $1 = une chaîne vide)
ça fait en apparence une partie de ce que tu veux mais en réalité rien de bon
GUL les mardis à Bordeaux : Giroll
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdnGMT-4
Hors ligne
#16 Le 27/02/2010, à 10:06
Re : [resolu] créer un alias avec paramètre
Oui, tu as raison !
Cordialement,
Guy
En ligne
#17 Le 27/02/2010, à 15:46
Re : [resolu] créer un alias avec paramètre
Ok parfait merci beaucoup ![]()
Hors ligne
#18 Le 15/04/2013, à 14:29
Re : [resolu] créer un alias avec paramètre
Bonjour,
(et désolé pour le déterrage
)
J'ai tenté ceci dans mon .bashrc:
function grepi() { grep -iInr "$1" . }et lorsque j'ouvre un nouveau terminal j'ai (la ligne 52 est la fin du fichier bashrc et la fonction se trouve ligne 26...)
-bash: /home/moi/.bashrc: line 52: syntax error: unexpected end of filemais sans succès... Quelqu'un aurait une idée du problème svp?
Hors ligne
#19 Le 15/04/2013, à 14:46
Re : [resolu] créer un alias avec paramètre
Bonjour tiresias,
La commande entre "{ }" doit se terminer par ";".
function grepi() { grep -iInr "$1" . ;}Dernière modification par pingouinux (Le 15/04/2013, à 14:54)
En ligne
#20 Le 16/04/2013, à 14:21
Re : [resolu] créer un alias avec paramètre
oh mon Dieu oui, j'avais tenté le ; mais à l'extérieur des {} ![]()
merci ^^
Hors ligne
Pages : 1
- Accueil
- » Forum
- » Terminal, scripts et ligne de commande
- » [resolu] créer un alias avec paramètre