![alias string aninhada](https://rvso.com/image/1087104/alias%20string%20aninhada.png)
Eu tenho um alias
for youtube_dl
que adiciona alguns argumentos no meu .bashrc
arquivo. Quero executar isso em um terminal separado, semelhante a como é feitoaqui. O problema é que isso leva uma string como entrada.
meu apelido atual:
alias youtube-dl="youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s'"
como eu quero que o novo alias fique:
alias youtube-dl='gnome-terminal -e "youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s'"'
O problema, entretanto, é que agora as '
-strings são interpretadas como duas strings separadas. Além disso, agora não consigo adicionar o URL como argumento. Como faço para contornar isso?
Responder1
Você poderia mexer com aspas e escapar, mas prefiro procurar maneiras de reduzir os níveis de cotação. Por exemplo, você poderia usargnome-terminal -x
em vez de:
-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 citações. E o apelido 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' "$@"
}