1 votes

Pourquoi les alias avec des mots ne s'étendent pas en grand ?

J'ai des alias dans mon ~/.bashrc y ~/.bash_profile (J'ai essayé avec et sans .bash_profile), ils ont tous deux trouvé leur source.

alias ll=‘ls -l’ 
alias al=‘ls -ahl’

alias iridium=“~/git/iridium”
alias vscode=“Visual Studio Code” 

Sur Ubuntu, centos et fedora, ces systèmes fonctionnent parfaitement.

Même sur Windows git bash, j'avais de longs alias pour ouvrir les jeux avec l'énorme chemin de vapeur.

Mais sur big sur :

seuls les alias ls fonctionnent.

Y a-t-il une raison à cela ?

Je trouve également ces fichiers à partir de /etc/bashrc

Regardez-le en action :

   cat ~/.bash_profile 
alias ll='ls -l'
alias al='ls -ahl'

alias vscode='Visual Studio Code'

alias batchelor="~/git/batcheloranator"
alias iridium="~/git/iridium"
alias chem="~/git/chemistry_stuff"
 chemistry_stuff:  (master)  
   . ~/.bash_profile 
 chemistry_stuff:  (master)  
   cd iridium
bash: cd: iridium: No such file or directory
 chemistry_stuff:  (master)  
   cd chem
bash: cd: chem: No such file or directory
 chemistry_stuff:  (master)  
   open -a vscode
Unable to find application named 'vscode'

2voto

Marc Wilson Points 3640
$ alias --man
NAME
  alias - define or display aliases

SYNOPSIS
  alias [ options ] [name[=value]...]

DESCRIPTION
  alias creates or redefines alias definitions or writes the existing alias definitions to standard output. An alias
  definitions provides a string value that will replace a command name when the command is read. Alias names can
  contain any printable character which is not special to the shell. If an alias value ends in a space or tab, then the
  word following the command name the alias replaces is also checked to see whether it is an alias.

Si vous voulez que votre alias vscode fonctionne, vous devez faire quelque chose comme :

alias vscode='"visual studio code"'

Pour que l'interpréteur de commandes n'effectue pas de découpage de mots sur la chaîne.

Exemple :

$ alias vscode='visual studio code'
$ vscode
ksh: visual: not found               <= shell word-splitting
$ alias vscode='"visual studio code"'
$ vscode
ksh: visual studio code: not found   <= shell not word-splitting
$

Mais ce que vous devriez vraiment faire, c'est suivre les instructions d'installation de VS Code pour MacOS, ajouter /Applications/Visual Studio Code.app/Contents/Resources/app/bin dans votre chemin, et exécutez code pour le démarrer.

$ path
/opt/local/bin
/opt/local/sbin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/Applications/VMware Fusion.app/Contents/Public
/Applications/Visual Studio Code.app/Contents/Resources/app/bin
/Users/mwilson/bin
/Users/mwilson/.local/bin
/Users/mwilson/Library/Python/3.9/bin
$ whence code
'/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code'
$

-2voto

Nickotine Points 81

J'ai eu ce que je voulais en faisant ça :

   cat .bash_profile 
alias ll='ls -l'
alias al='ls -ahl'

vscode='Visual Studio Code'

batchelor=~/git/batcheloranator
iridium=~/git/iridium
chem=~/git/chemistry_stuff

 ~:    
   open -a "$vscode"; echo $?
0

 ~:    
   cd $iridium
 iridium:  (master)

1 votes

Il semble que vous ayez confondu les alias (qui contiennent des commandes exécutables et doivent être placées là où se trouve normalement le nom d'une commande) et les variables (qui contiennent des données et doivent être développées à l'aide de la commande $ ). Voir ma réponse aquí pour plus de détails.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X