2017-05-13 15 views
0

私のマシンで動作しているjvmの稼働時間を印刷したいとします。私はjcmdを使ってそれを行うことができます。しかし、私はそれを数分で印刷したい。だから私は次のように試した:bash算術コマンドでネスト補助コマンドを使用する方法

bash-3.2$echo $(($(jcmd 785 VM.uptime)/60)) 

しかし、これは動作しません。私は、変数最初の演算式に、それはまだ動作していないことの代替に$(jcmd 785 VM.uptime)を割り当てた場合

bash-3.2$ echo $(($(jcmd 785 VM.uptime)/60)) 
bash: 785: 
1541.343 s/60: syntax error in expression (error token is ": 
1541.343 s/60") 

:私は次のエラーを取得します。どのように私はこれを動作させることができる任意のアイデア?

+0

「jcmd 785 VM.uptime」コマンドは正確に何を出力しますか? – ilkkachu

+0

'(('の前に ')の後にスペースを入れてください。 –

+0

喜びはありません。コマンドは、jvmの稼働時間を表示します。 – njk2015

答えて

2

出力は整数ではなく、文字 's'を持っています。あなたは、不要な部分をカットする必要があります

echo $(($(jcmd 785 VM.uptime |sed 's/^\([[:digit:]]*\).*$/\1/')/60)) 

または

echo "scale=4;$(jcmd 785 VM.uptime |sed 's/ s//')/60" |bc 

- これはあなたのfloat値が得られます。

関連する問題