2017-02-10 9 views
3

私はPHPを使ってウェブサイトからファイルをダウンロードするBashスクリプトを持っています。スクリプトの完了に要した時間を表示する最後のものを実装したかったのです。どのように翻訳することができるだろうBashの秒数を分と秒に変換するには?

Task complete 
Script completed in 1.35 minutes 

#!/bin/bash 
SECONDS=0 

# -- Code to Execute -- 

echo "Task complete" 
echo "Script completed in $(echo "scale=2; $SECONDS/60" | bc) minutes" 

しかし、このスクリプトは分の画分に実行するのにかかった時間が表示されます:このコードでは、私はそれを行うことができましたスクリプトが分単位で完了するまでの秒数このように:

Task complete 
Script completed in 1 minute and 12 seconds 
+0

codeforesterのようにスクリプトが完了するまでに要した時間の数値を表示するだけです答えが終わった。 (例:72秒から1分12秒に翻訳) – jramos775

答えて

3

bashは簡単な整数演算で良いです:

total_time=100 
minutes=$((total_time/60)) 
seconds=$((total_time % 60)) 
echo "Script completed in $minutes minutes and $seconds seconds" 
# output -> Script completed in 1 minutes and 40 seconds 
5

あなたはシェルで整数の除算および剰余演算子を使用することができます。

echo "Script completed in $((SECONDS/60)) minutes and $((SECONDS%60)) seconds" 

あなたが残しておきたい場合秒と分の部分がゼロの場合は少し複雑です:

if ((SECONDS/60 == 0)); then 
      echo "Script completed in $SECONDS seconds" 
elif ((SECONDS%60 == 0)); then 
    echo "Script completed in $((SECONDS/60)) minutes" 
else 
    echo "Script completed in $((SECONDS/60)) minutes and $((SECONDS%60)) seconds" 
fi 

(これは「1分」ではなく「1分」のようなものです。 )さらに複雑にしたい場合は修正することもできます。)

+0

あなたの答えは同様に働いていたかもしれませんが、それが必要な範囲から少し外れているので、私は先に進んでコードフォレスターの答えを受け入れました。あなたの答えをありがとう! – jramos775

関連する問題