• ベストアンサー

ファイルサイズが取得できないケースを判定方法

シェルスクリプトで指定ファイルのファイルサイズを取得する際 何らかの原因でファイルサイズが出来なかった場合に、エラーとしたいです。 以下の方法で、サイズ取得できますが、 エラー時の判定できません。 SIZE=`ls -l $FILENAME|awk '{printf("%s",$5)}'` (`~`は、文字列となる為??、`~|grep~`は?) 通常エラーの場合、$?にゼロ以外が代入されるのだと、思いますが・・・・ エラーの特定方法が分かる方、ご教授ください

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

イマイチどういう動作を期待しているのかわかりませんが……。 SIZE=`stat -L -c%s $FILENAME 2> /dev/null` で、SIZEが空だったらエラー…とか? コマンド直後なら$?が0かどうかで判定は可能かと思われますが…。 >通常エラーの場合、$?にゼロ以外が代入されるのだと、思いますが・・・・ awkコマンドは正常に終了したのでしょう。 $FILENAMEのファイルが存在しないなどでエラーになった場合、パイプには何も送られないでしょうけど…。 # stderrにはエラーメッセージが出力されています。 ファイルは存在するけどパーミッションで落とされる。ということもあるかもしれませんね。

manaaaa1013
質問者

お礼

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

関連するQ&A