Я имею alias
для youtube_dl
который включает некоторые аргументы мой .bashrc
файл. Я хочу выполнить это в отдельном терминале, подобном тому, как это сделано здесь. Проблема состоит в том, что это берет строку в качестве входа.
мой текущий псевдоним:
alias youtube-dl="youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s'"
как я хочу, чтобы новый псевдоним был похож:
alias youtube-dl='gnome-terminal -e "youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s'"'
Проблема - однако, это теперь '
- строки интерпретируются как две отдельных строки. Кроме того, я теперь не могу добавить URL как аргумент. Как я обхожу это?
Вы могли бездельничать с кавычками и выходом, но я предпочитаю искать способы снизить уровни заключения в кавычки. Например, Вы могли использовать gnome-terminal -x
вместо этого:
-e, --command=STRING
Execute the argument to this option inside the terminal.
-x, --execute
Execute the remainder of the command line inside the
terminal.
Так,
gnome-terminal -e "youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s'"
Становится:
gnome-terminal -x youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s'
Бритье одного слоя кавычек. И псевдоним был бы:
alias youtube-dl='gnome-terminal -x youtube-dl -ci --restrict-filenames -o "%(title)s.%(ext)s"'
<час> Или Вы могли использовать функцию:
youtube-dl()
{
gnome-terminal -x youtube-dl -ci --restrict-filenames -o '%(title)s.%(ext)s' "$@"
}