¿Es posible crear un alias de Bash que ingrese una determinada cadena en el Terminal?

1

¿Es posible crear un alias de Bash que, al ejecutarse, ingrese una cadena de mi elección anterior, en la Terminal?

Supongamos que esto está en mi ~/.bash_profile :

alias start_youtube="cd ~/Video/Youtube; **[PASTE: youtube-dl URL]**"

Imagina que: el alias cambiaría el directorio a Video/Youtube y luego [PEGAR] la cadena: youtube-dl URL . Podría hacer Return ⏎ o, preferiblemente, simplemente dejar la cadena youtube-dl URL en el indicador de la Terminal para que pueda intercambiar la URL del marcador de posición por una URL real.

Si realmente intento ejecutar el alias a continuación;

alias start_youtube="cd ~/Video/Youtube; youtube-dl URL"

ejecutará el comando tal como se ingresó, por lo que youtube-dl devolverá un error como "No se pudo analizar la URL" , lo que podría haber estado bien. Pero al presionar la tecla no se mostrará la última entrada del alias ( youtube-dl URL ), sino que se muestra la invocación del alias ( start_youtube ) [que estoy seguro que es generalmente preferible].

Por lo tanto, la solución solicitada es pegar una cadena de marcador de posición en el símbolo del sistema o acceder de alguna manera al historial del comando alias a través del Shell.

    
pregunta Winterflags 30.07.2017 - 17:41

2 respuestas

1

Así es como lo abordaría. Use esta pregunta relacionada para escribir la función que residiría en su bashrc o bash_profile . Luego, agregue una línea en la función que elimine la línea más reciente en su historial de bash usando este

    
respondido por el Gleland 30.07.2017 - 19:05
1

Podría usar osascript para esto y decirle a los Eventos del sistema que escriban las claves por usted. En general, desaconsejo enfáticamente el enfoque completo de enviar pulsaciones a ciegas al shell, ¡puedes causar estragos en tu sistema con esto!

osascript -e 'tell application "Terminal" to activate' -e 'tell application "System Events" to keystroke "# cd /tmp; your text" '

Por razones de seguridad, le envío el carácter de comentario # como primer carácter, pero esta línea le da el resultado que desea. El cursor espera después de su texto y puede continuar escribiendo.

    
respondido por el Arminius 11.08.2017 - 22:34

Lea otras preguntas en las etiquetas