Ich habe ein alias
for youtube_dl
, das einige Argumente in meine .bashrc
Datei 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 -x
stattdessen:
-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' "$@"
}