alias aninhadas

3

Eu tenho um alias para youtube_dl , que adiciona alguns argumentos no meu arquivo .bashrc . Eu quero executar isso em um terminal separado semelhante a como é feito aqui . O problema é que isso leva uma string como entrada.

meu alias atual:

alias youtube-dl="youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s'"

como eu quero que o novo alias se pareça:

alias youtube-dl='gnome-terminal -e "youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s'"'

O problema é, no entanto, que agora os ' -strings são interpretados como duas strings separadas. Além disso, agora não consigo adicionar o URL como argumento. Como contornar isso?

    
por M.T 07.04.2016 / 12:10

1 resposta

6

Você pode mexer com aspas e escapar, mas eu prefiro procurar maneiras de reduzir os níveis de citação. Por exemplo, você pode usar gnome-terminal -x em vez disso:

-e, --command=STRING
         Execute the argument to this option inside the terminal.

-x, --execute
         Execute  the  remainder  of  the  command  line  inside   the
         terminal.

Então,

gnome-terminal -e "youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s'"

Torna-se:

gnome-terminal -x youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s'

Raspar uma camada de cotações. E o alias seria:

alias youtube-dl='gnome-terminal -x youtube-dl -ci --restrict-filenames -o "%(title)s.%(ext)s"'

Ou você pode usar uma função:

youtube-dl()
{
    gnome-terminal -x youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s' "$@"
}
    
por muru 07.04.2016 / 13:25

Tags