次のコードのif条件で、-z "${line}"はどういう意味ですか?
while read line
do
if [ -z "${line}" ]; then
echo "file empty "
exit
fi
done < $FILE
if条件が正確に何を確認しているか教えてください。
答え1
変数$line
(ここでは同じ${line}
)が空であること(文字を含まない)をテストします。read
ジョブがファイルの終わりに達すると、この状況が発生します。
その後のコメントでは、それが何z
に使用されたか(何を意味するのか)尋ねました。これ[
演算子に対応test
便利、POSIX ステートメント
-z
ひも
文字列stringの長さがTrueの場合若い;そうでなければ偽です。
したがって、-z
最初はニーモニック値のために選択されたでしょう。最も古いバージョンでは使用できません。test
(Unix 7th, 1979)に登場したが、8版(1985):
-z s1 true if the length of string s1 is zero.
バージョン7には文書化されていませんが、同じ時期に3BSDに登場したため(CSRG CD1の1979年2月ファイル)、BSDから出てきたようです。
すべてのオプションがtest
文字と意味の間に明確な関係を持つわけではありません。この単語は早く出てくるので、意味に関連する文字を選択してください。