आप जो वर्णन कर रहे हैं वह ठीक काम करना चाहिए - जब तक आप निरपेक्ष पथ का उपयोग कर रहे हैं, और -f
("फ़ाइल मौजूद है और एक नियमित फ़ाइल है") वास्तव में वह परीक्षण है जिसे आप करना चाहते हैं।
मुझे /
आपके प्रश्न में एक अनुगामी दिखाई देता है - क्या आप किसी निर्देशिका के लिए परीक्षण कर रहे हैं? यह होना चाहिए -d
, या बस -e
("कुछ नाम के साथ मौजूद है - प्रकार की परवाह किए बिना")
यह भी ध्यान दें कि जब तक रास्ते में कोई चीज पठनीय नहीं है test
( [
) आपको यह बताने में सक्षम होना चाहिए कि क्या रूट के स्वामित्व वाली कोई फ़ाइल मौजूद है या नहीं (जैसे [ -f /root/.ssh/known_hosts ]
कि शायद विफल हो जाएगी, क्योंकि /root/.ssh निर्देशिका नहीं है (या कम से कम होना चाहिए) एक सामान्य उपयोगकर्ता द्वारा पढ़ा जा सकता है ) [ -f /etc/crontab ]
सफल नहीं होना चाहिए)।