指定したPIDに基づいてexport
有効なプロセスを設定しようとしています。コマンドを実行するとうまくいくようです(もしkill
pgrep
kill $(pgrep myAppName)
「マイアプリケーション名」実際に実行されているプロセスの名前です。)...しかし、このコマンドをエクスポートした環境変数としてどのように保存できますか?私が考えることができるコマンドのすべてのバリアントは、pgrep myAppName
同様の値20137
(または同様のPID値)で評価しようとしているように見え、エクスポートされた変数を最初に実行したときに機能しますが、その後は明らかには機能しません。コマンドが実際にはいkill 20137
、プロセスが終了しました。
$KILL_APPNAME
コマンドを実行するたびにプロセスの終了などのコマンドを入力できるように、変数を正しく保存するにはどうすればよいですか。
答え1
私は何ですか?考えるeval
あなたは仕事をするために何をすべきかをしようとしています:
THING="eval kill \$(pgrep myAppName)"
$THING
zsh
ただし、これは厄介で、デフォルトではすべてのシェルでは機能しません(たとえば、機能するようにオプションを設定できますが、デフォルトでは機能しません)。何をしても、次の関数のように、よりクリーンでシンプルなもので解決する方が良いでしょう。
kill_my_app() {
kill $(pgrep myAppName)
}
kill_my_app
または、他の人がコメントで指摘したように、必要なものを正確に実行するpkill
orを使用してください。killall