¿Cómo puedo ejecutar un comando que requiere la entrada del usuario a través del alias oh-my-zsh?

Estoy tratando de agregar elementos Reminder.app a través de la línea de comando invocando un alias. Uso la solución de flujo de trabajo de Automator de esta pregunta: ¿ Cómo puedo agregar recordatorios a través de la línea de comando? , que invoca un flujo de trabajo básico que contiene un elemento de Recordatorios vacío, a través de la siguiente entrada de línea de comando:

automator -i remindertext add_reminder.workflow

Esto funciona perfectamente, pero es complicado escribirlo, así que quiero establecer un alias para él. Mi pregunta es: ¿cómo configuro un alias en .zshrc que me permita configurar el texto del elemento de recordatorio cuando invoco el alias? Básicamente, necesitaría poder reemplazar 'recordatorio' con una variable, así:

alias reminder='automator -i <variable> add_reminder.workflow'

¿Es esto posible en zsh/oh-my-zsh?

Respuestas (1)

Los alias se utilizan como atajos: comandos simples que se expanden a otros más largos. Si necesita pasarle un argumento, deberá crear una función. Tal vez intente algo como:

reminder () { automator -i $1 add_reminder.workflow' }

Aquí $1 se expandirá al primer argumento que haya pasado a la función. Así que tendrás que hacer algo como:

reminder "Buy potatoes"

PD: No lo he probado, ya que no tengo zsh conmigo en este momento, así que si se rompe, avísame.

¡Gracias! Esto me puso en la dirección correcta, con algunos retoques menores. Ahora tengo esta línea en mi archivo .zshrc: function reminder () {automator -i $1 add_reminder.workflow}Funciona perfectamente.
Quería agregar que después de jugar un poco con la sintaxis, me di cuenta de que también funciona sin agregar la parte 'función' al comienzo de la línea (es decir, funciona exactamente como lo sugirió Atanas con su código)
Estoy tratando de escribir weather() { curl -4 http://wttr.in/$1 }para habilitar weather newyorkel alias, el comando original escurl -4 http://wttr.in/newyork
@Wongzigii: (1) Te has perdido; entre $1 y } (2) Es mejor usar ${1:-newyork}, en este caso si inicia weather, newyork se usa por defecto, y puede especificar parámetros adicionales si desea anularlo; (3) ya no necesitas -4, funciona aun así no; (4) Sugeriría usar wttren lugar de weatherpara el nombre de la función: es corto y único y es obvio lo que significa