Alias ​​verschachtelte Zeichenfolge

Alias ​​verschachtelte Zeichenfolge

Ich habe ein aliasfor youtube_dl, das einige Argumente in meine .bashrcDatei einfügt. Ich möchte dies in einem separaten Terminal ausführen, ähnlich wie es gemacht wirdHier. Das Problem besteht darin, dass als Eingabe eine Zeichenfolge verwendet wird.

mein aktueller Alias:

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

wie der neue Alias ​​aussehen soll:

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

Das Problem ist jedoch, dass die '-Strings nun als zwei separate Strings interpretiert werden. Außerdem kann ich die URL nun nicht mehr als Argument hinzufügen. Wie kann ich das umgehen?

Antwort1

Sie könnten mit Anführungszeichen und Escapezeichen herumspielen, aber ich suche lieber nach Möglichkeiten, die Anführungszeichen zu reduzieren. Sie könnten zum Beispiel verwendengnome-terminal -xstattdessen:

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

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

Also,

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

Wird:

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

Eine Ebene Anführungszeichen entfernen. Und der Alias ​​wäre:

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

Oder Sie könnten eine Funktion verwenden:

youtube-dl()
{
    gnome-terminal -x youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s' "$@"
}

verwandte Informationen