1 votos

¿Por qué los alias con palabras no se expanden en big sur?

Tengo algunos alias en mi ~/.bashrc y ~/.bash_profile (He probado con y sin .bash_profile), ambos han salido.

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

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

En Ubuntu, centos y fedora estos funcionarían bien.

Incluso en Windows git bash tenía largos alias para abrir juegos con la enorme ruta de vapor.

Pero en el gran sur:

sólo funcionan los alias de ls.

¿hay alguna razón para esto?

También me estoy abasteciendo de estos archivos desde /etc/bashrc

Míralo en acción:

   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 Puntos 146
$ 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 quieres que tu alias vscode funcione, tienes que hacer algo como

alias vscode='"visual studio code"'

Para que el intérprete de comandos no realice la división de palabras en la cadena.

Ejemplo:

$ 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
$

Pero lo que realmente deberías hacer es seguir las instrucciones de instalación de VS Code para MacOS, añadir /Applications/Visual Studio Code.app/Contents/Resources/app/bin a su ruta, y ejecute code para iniciarlo.

$ 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

R3D34THR4Y Puntos 13

Conseguí lo que quería haciendo esto:

   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)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X