बेशक, यदि फ़ाइल खाली है test -s FILE
, तो परीक्षण का मानक तरीका है , लेकिन हमारे ग्राहकों में से एक को इस तरह के परीक्षण वाली एक स्क्रिप्ट मिली है:
RETVAL=`ls -s ./log/cr_trig.log | awk '{print $1}'`
if test $RETVAL -ne 0
then
echo "Badness: Log not empty"
exit 25
fi
आपूर्तिकर्ता के दावों के साथ कि यह उन दो वातावरणों में काम करता है जिन्हें उन्होंने इसमें परीक्षण किया है। कहने की जरूरत नहीं है कि यह दोनों स्थानों पर बुरी तरह से विफल रहा है कि मैंने इसका परीक्षण किया।
तो, मैं उत्सुक हो गया। खाली फ़ाइलों के लिए ls -s
प्रिंट कब होता है 0
?
यह मेरा अब तक का निष्कर्ष है:
- लिनक्स पर जीएफएस: 4
- Linux पर ext4: 0
- सोलारिस पर ZFS: 1
- सोलारिस पर UFS: 0
- AIX पर jfs: 0
- HP-UX पर VxFS: 0
- एचपी-यूएक्स पर एचएफएस: 0
- मैक ओएस एक्स पर एचएफएस: 0
मैंने अभी तक नेटवर्क फ़ाइल सिस्टम की जांच नहीं की है।
प्रश्न: मैं दूसरों को कैसे समझा सकता हूं कि उनकी स्क्रिप्ट गलत है ?
मेरी राय में, "सही" संस्करण होगा:
if test ! -s ./log/cr_trig.log
then
echo "Badness: Log not empty"
exit 25
fi