¿Es posible crear un alias de Bash que, al ejecutarse, ingrese una cadena de mi elección previa en la Terminal?
Supongamos que esto está en mi ~/.bash_profile
:
alias start_youtube="cd ~/Video/Youtube; **[PASTE: youtube-dl URL]**"
Imagínese eso: el alias cambiaría el directorio Video/Youtube
y luego [PEGAR] la cadena: youtube-dl URL
. Podría hacerlo Return ⏎o, preferiblemente, simplemente dejar la cadena youtube-dl URL
en el indicador de la Terminal para poder cambiar la URL del marcador de posición por una URL real.
Si 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 mostrará la invocación del alias ( start_youtube
) [lo cual estoy seguro que suele ser preferible].
Entonces, la solución solicitada es pegar una cadena de marcador de posición en el Símbolo del sistema, o de alguna manera acceder al historial del comando de alias a través del Shell.
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 eliminaría la línea más reciente en su historial de bash usando esto
Podría usar osascript
para esto y decirle a los eventos del sistema que escriban las claves por usted. En general, desaconsejo encarecidamente todo el enfoque de enviar ciegamente pulsaciones de teclas al shell, ¡puede causar estragos en su 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, envío el carácter de comentario #
como el primer carácter, pero esta línea da el resultado que querías. El cursor espera después de su texto y puede continuar escribiendo.
CACEROLA
echo
es la "cadena de marcador de posición" que puedo copiar, editar e ingresar, una vez que el alias tienecd
el directorio deseado. No entendí cómo acceder al historial de bash desde el alias o por qué eliminar líneas de él, porque el teclado ↑ no revela los comandos utilizados en el alias afaik.