![エイリアスネスト文字列](https://rvso.com/image/1087104/%E3%82%A8%E3%82%A4%E3%83%AA%E3%82%A2%E3%82%B9%E3%83%8D%E3%82%B9%E3%83%88%E6%96%87%E5%AD%97%E5%88%97.png)
ファイルにいくつかの引数を追加するalias
forがあります。これを別のターミナルで実行したいのですが、これは次のように実行します。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'"'
しかし、問題は、'
文字列が 2 つの別々の文字列として解釈されることです。さらに、URL を引数として追加できなくなりました。これを回避するにはどうすればよいですか?
答え1
引用符やエスケープをいじることもできますが、私は引用符のレベルを減らす方法を探すことを好みます。たとえば、次のようにします。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'
引用符を 1 層削除します。エイリアスは次のようになります。
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' "$@"
}