Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/08/2015, 11:36
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Alias para compilar LESS

A menos que el bash de windows sea diferente en ese sentido, el problema que veo es el uso de dos pares de comillas.

La definición de un alias va entre comillas simplemente para que los espacios no entren en juego y se considere toda la línea como lo que se quiere asignar al alias, por ejemplo:

alias ll="ls -lrt"

Sin las comillas, bash respondería "bash: alias: -lrt: no se encontró", ya que "-lrt" no es un alias definido

En el manual de bash se explica este comportamiento:

[pre] alias [-p] [name[=value] ...]
Alias with no arguments or with the -p option prints the list of aliases in the form alias name=value on stan‐
dard output. When arguments are supplied, an alias is defined for each name whose value is given. A trailing
space in value causes the next word to be checked for alias substitution when the alias is expanded. For each
name in the argument list for which no value is supplied, the name and value of the alias is printed. Alias
returns true unless a name is given for which no alias has been defined.[/pre]

Ahora, al proveer dos juegos de comillas, estás impidiendo que se aplique la separación de palabras (word splitting) en los espacios, con lo que tu cadena entera se transforma en el nombre del programa que se intentará correr. Es decir, al correr el alias 'compilar', bash buscará una carpeta con nombre "css" dentro de otra llamada "lessc style.less > ..", e intentará correr el programa "style.css" dentro de ella.

Solución al problema: elimina el doble entrecomillado en tu declaración de alias, esto es, quita las comillas dobles o las simples de la línea.