アプリ版:「スタンプのみでお礼する」機能のリリースについて

シェルスクリプトで指定ファイルのファイルサイズを取得する際
何らかの原因でファイルサイズが出来なかった場合に、エラーとしたいです。

以下の方法で、サイズ取得できますが、
エラー時の判定できません。

SIZE=`ls -l $FILENAME|awk '{printf("%s",$5)}'`
(`~`は、文字列となる為??、`~|grep~`は?)

通常エラーの場合、$?にゼロ以外が代入されるのだと、思いますが・・・・


エラーの特定方法が分かる方、ご教授ください

A 回答 (1件)

イマイチどういう動作を期待しているのかわかりませんが……。



SIZE=`stat -L -c%s $FILENAME 2> /dev/null`
で、SIZEが空だったらエラー…とか?
コマンド直後なら$?が0かどうかで判定は可能かと思われますが…。

>通常エラーの場合、$?にゼロ以外が代入されるのだと、思いますが・・・・

awkコマンドは正常に終了したのでしょう。
$FILENAMEのファイルが存在しないなどでエラーになった場合、パイプには何も送られないでしょうけど…。
# stderrにはエラーメッセージが出力されています。

ファイルは存在するけどパーミッションで落とされる。ということもあるかもしれませんね。
    • good
    • 0
この回答へのお礼

SIZEが空だったらエラーとしたいと思います。
(私の方法でも、SIZEが空だったらエラーとして問題ないでしょうか??)
助かりました、ありがとうございます。

お礼日時:2013/12/19 19:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!