まず、私はこれが初めてです。Windows スクリプトと Apple スクリプトの経験はありますが、bash の経験はあまりありません。私がやろうとしているのは、特定のプロセスの PID と %CPU を取得することです。次に、%CPU を設定された数値と比較し、それが高い場合はプロセスを強制終了します。近づいたような気がしますが、次のエラーが表示されます。
[[: 0.0: 構文エラー: 無効な算術演算子 (エラー トークンは ".0")
私は何を間違っていますか?これまでの私のコードは次のとおりです。
#!/bin/bash
declare -i app_pid
declare -i app_cpu
declare -i cpu_limit
app_name="top"
cpu_limit="50"
app_pid=`ps aux | grep $app_name | grep -v grep | awk {'print $2'}`
app_cpu=`ps aux | grep $app_name | grep -v grep | awk {'print $3'}`
if [[ ! $app_cpu -gt $cpu_limit ]]; then
echo "crap"
else
echo "we're good"
fi
明らかに、if/then ステートメントのエコーを置き換えるつもりですが、CPU 負荷が実際に何であるかに関係なく、ステートメントが true であるかのように動作します (-gt を -lt に変更してこれをテストしましたが、それでも「がらくた」がエコーされました)。 "
助けてくれてありがとう。ああ、それが重要な場合、これは OS X 10.7 上にあります。