Bash:使用されたメモリ機能に基づいてプロセスを終了する

Bash:使用されたメモリ機能に基づいてプロセスを終了する

awkプロセスを終了するためにこのスクリプトを作成しましたが、結果()をIntegerとvar1比較することはできませんvar1 -gt 5000

私のスクリプト:

#!/bin/bash

var1= free -m |awk 'NR == 2'| awk '{print $3}'
var2= ps aux | grep '/opt/skype/skype' | grep -v grep | awk '{print $2}'

while true;
do
     if [ $var1 -gt 5000 ]; then
         echo "La memoria se ha excedido cerrando porcesos"
         kill -9 $var2
     break
     else
     echo "La memoria aun es estable $var1"
     fi
done

これはbashの変換の問題かもしれませんか?

ベストアンサー1

declare -i varbashとksh(整数または整数を使用)から変数を変換できますが、typeset -i varそれは問題ではないと思います。

var1コマンドが正常に実行されると、次は空になります。

var1= free -m |awk 'NR == 2'| awk '{print $3}'

free と awk の出力を var1 に設定する場合、上記は次のようになります。

var1=$( free -m |awk 'NR == 2'| awk '{print $3}' )

おすすめ記事