vim機能を使ってpgrepを使ってプログラムが実行されていることを確認し、そうでない場合は何かをしたいと思います。特に以下のことを達成したいと思います。
function! checkifrunning(mystring)
if 'pgrep "mystring"' shows that something is NOT running
--do something--
endif
endfunction
私の考えでは、「system()」関数を使用する必要があるようですが、どうすればいいかわかりません。誰でも助けることができますか?
編集:私はpgrepを使用するソリューションが欲しいが、その逆ではありません。
ベストアンサー1
function! checkifrunning(mystring)
if !system('pgrep "' . a:mystring . '"')
" --do something--
endif
endfunction
技術的に言えば!
実行対象数字、文字列が与えられたら、まず文字列を数値に変換します。ただし、実行中のプロセスがない場合は、出力は空になり、pgrep
数値に変換されると0になります。実行中のプロセスがある場合は、数値に変換するとゼロ以外の値が提供されます。
代わりに'pgrep "' . a:mystring . '"'
、あなたも同じことができます'pgrep ' . shellescape(a:mystring)
。