- ベストアンサー
ファイルサイズが取得できないケースを判定方法
シェルスクリプトで指定ファイルのファイルサイズを取得する際 何らかの原因でファイルサイズが出来なかった場合に、エラーとしたいです。 以下の方法で、サイズ取得できますが、 エラー時の判定できません。 SIZE=`ls -l $FILENAME|awk '{printf("%s",$5)}'` (`~`は、文字列となる為??、`~|grep~`は?) 通常エラーの場合、$?にゼロ以外が代入されるのだと、思いますが・・・・ エラーの特定方法が分かる方、ご教授ください
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
イマイチどういう動作を期待しているのかわかりませんが……。 SIZE=`stat -L -c%s $FILENAME 2> /dev/null` で、SIZEが空だったらエラー…とか? コマンド直後なら$?が0かどうかで判定は可能かと思われますが…。 >通常エラーの場合、$?にゼロ以外が代入されるのだと、思いますが・・・・ awkコマンドは正常に終了したのでしょう。 $FILENAMEのファイルが存在しないなどでエラーになった場合、パイプには何も送られないでしょうけど…。 # stderrにはエラーメッセージが出力されています。 ファイルは存在するけどパーミッションで落とされる。ということもあるかもしれませんね。
お礼
SIZEが空だったらエラーとしたいと思います。 (私の方法でも、SIZEが空だったらエラーとして問題ないでしょうか??) 助かりました、ありがとうございます。