デスクトップにscript.sh
というbashスクリプトがあります。
現在、実行したい場合はターミナルを開いて./script.sh
と入力し、停止したい場合は押す必要があります Ctrl + C
私がやりたいのは、スクリプトをキーにバインドすることです。 7 たとえば、スクリプトがオフの場合、押します 7、オンになります。既にオンになっている場合は、 7、オフになっています。
キーボードショートカットでバインドして有効にする方法は既に知っていますが、問題は、ショートカットをもう一度押すとスクリプトの別のインスタンスが作成されるだけで、それが望んでいないことです。
スクリプトが実行可能であると仮定すると、以下の小さなスクリプトでスクリプトを簡単に切り替えることができます。
#!/bin/bash
scriptpath='/full/path/to/script'
if ! pgrep -f "$scriptpath"
then
Nohup "$scriptpath" &
else
pkill -f "$scriptpath"
fi
toggle_scrip.sh
として安全にしますscriptpath='/full/path/to/script'
行に、スクリプトへのフルパス(一重引用符の間)を入力します。複数のスクリプトを制御する必要がある場合は、パスを上記のスニペットへの引数にします。
キーバインディングを介してこのように何かを切り替えることは可能だとは思いません。
ただし、1つのオプション(ちょっとしたハックですが、動作します)は、スクリプトを変更して、実行中の自身の別のインスタンスを検出できるようにすることです。そうすれば、キーバインドを介して2番目のスクリプトを開始するときに、pkillまたは同様のコマンドを発行して、スクリプトの2番目と1番目のインスタンスを終了できます。