2016-10-16 4 views
2

ファイルサイズ(Debianのbash)を確認したい場合は、コマンドを実行してください。私のshスクリプトは以下のようになります。私が受け取るbashでは、ファイルサイズが変更されているかどうかをチェックし、そうでない場合はコマンドを実行します。

FirstSize=$(du -s /media/USB/km) 
echo $FirstSize 
sleep 5 
SecondSize=$(du -s /media/USB/km) 
echo $SecondSize 
if [ "$FirstSize" -eq "$SecondSize" ] 
then 
    echo "size is the same" 
    mount -a 
    sleep 15 
    pkill openRTSP 
else 
    echo "size is changing" 
fi 

出力は次のようになります。

135436688 /media/USB/km 
    135437444 /media/USB/km 
    ./size.sh: 8: [: Illegal number: 135436688 /media/USB/km 
    size is changing 

あなたが私を提案でした私が間違って何をやっていますか?

答えて

4

「135436688/media/USB/km」と数値を比較するようにbashに依頼しています。出力の最初の部分のみをduにします。このような何かをcutコマンドを使用してみてください:

FirstSize=$(du -s /media/USB/km | cut -f 1) 

(私はcygwinの上ではなく、Debianはので、私はそれがあなたのために働くだろうが、あなたが軌道に乗る必要がありますまさにそれだ100%確認することはできませんよ正しい方向です。)

+0

これは、ありがとうございます! – Filip

+0

Btw。 2つの文字列が同じかどうかチェックしたいのですが? – Filip

+1

Bashは、文字列を '='または '=='のいずれかと比較します。残念なことに、 '一括ブラケットテスト'と '二重ブラケットテスト'の違いを考慮する必要があるので、それはもっと複雑です。ここにいくつかの詳細があります:http://www.tldp.org/LDP/abs/html/comparison-ops.html – JonathanZ

関連する問題