「kill | pgrep dnsspoof」と「kill `pgrep dnsspoof`」の違い

「kill | pgrep dnsspoof」と「kill `pgrep dnsspoof`」の違い

私はこれが|プログラムの出力を他のプログラムの入力として提供するために使用されると思います。だから試してみましたが、kill | pgrep dnsspoof成功しませんでした。だから私は努力しました

kill `pgrep dnsspoof`

効果がありました。誰もがこれらのコマンドが内部的にどのように機能するかを教えてもらえますか?

ベストアンサー1

|あるプログラムの出力を別のプログラムに供給することは正確です。データleftフローがright

pgrep dnsspoof | kill

pgrepdnsspoofのプロセス番号が見つかり、提供されてから終了するkillため、これは機能します。 Killはコマンドラインで殺す項目だけを見るので、これはうまくいかないことがわかりました。

pgrepだから私たちはコマンドラインに出力を入れなければなりません。これが `pgrep dnsspoof` 現代で$(pgrep dnsspoof)行うことです。バックティックまたは角かっこ内でコマンドを実行し、コマンドの場所に出力を配置します。したがって、pgrep dnsspoof出力がある場合、5432runコマンドはでありkill 5432、これはKillプログラムを呼び出す正しい方法です。

を使用すると、いくつかの利点があります$( )。ネストする方が簡単で、エスケープすべき項目が少なくなります。したがって、シェルがそれをサポートしている場合は、優先的に使用する必要があります` `

おすすめ記事