Essayer de créer:Comment inclure des paramètres dans un alias bash?
alias mcd="mkdir $1; cd $1"
Obtenir:
$ mcd foo
usage: mkdir [-pv] [-m mode] directory ...
-bash: foo: command not found
Qu'est-ce que je fais mal?
Essayer de créer:Comment inclure des paramètres dans un alias bash?
alias mcd="mkdir $1; cd $1"
Obtenir:
$ mcd foo
usage: mkdir [-pv] [-m mode] directory ...
-bash: foo: command not found
Qu'est-ce que je fais mal?
Un alias ne peut remplacer le premier mot d'une commande que par du texte arbitraire. Il ne peut pas utiliser les paramètres.
Vous pouvez utiliser à la place une fonction shell:
mcd()
{
test -e "$1" || mkdir "$1"
cd "$1"
}
Aurait pu être un script shell aussi? Nommé comme un fichier mcd sans extension? En quoi une fonction est-elle différente ou meilleure? – talkaboutquality
Cela ne fonctionnerait pas comme un script shell, car le script s'exécuterait dans un sous-shell. Pour que le CD ait l'effet voulu, il doit s'exécuter dans le shell de l'appelant et non dans un sous-shell. –
Comment cette fonction est-elle censée être appelée? – Tebe
Celui-ci a été posée et répondu en premier! –