Tengo un alias
for youtube_dl
que agrega algunos argumentos en mi .bashrc
archivo. Quiero ejecutar esto en una terminal separada similar a como se haceaquí. El problema es que esto toma una cadena como entrada.
mi alias actual:
alias youtube-dl="youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s'"
cómo quiero que se vea el nuevo alias:
alias youtube-dl='gnome-terminal -e "youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s'"'
Sin embargo, el problema es que ahora las '
cadenas se interpretan como dos cadenas separadas. Además, ahora no puedo agregar la URL como argumento. ¿Cómo puedo evitar esto?
Respuesta1
Podrías jugar con las comillas y el escape, pero prefiero buscar formas de reducir los niveles de comillas. Por ejemplo, podrías usargnome-terminal -x
en cambio:
-e, --command=STRING
Execute the argument to this option inside the terminal.
-x, --execute
Execute the remainder of the command line inside the
terminal.
Entonces,
gnome-terminal -e "youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s'"
Se convierte en:
gnome-terminal -x youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s'
Eliminando una capa de comillas. Y el alias sería:
alias youtube-dl='gnome-terminal -x youtube-dl -ci --restrict-filenames -o "%(title)s.%(ext)s"'
O podrías usar una función:
youtube-dl()
{
gnome-terminal -x youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s' "$@"
}