यदि सशर्त विवरण में -x का क्या अर्थ है?


20

-xयहाँ क्या मतलब है:

if [ -x /etc/rc.local ] then

मैं इस मैनुअल पृष्ठ का पता कैसे लगा सकता हूं if?


4
tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_01.html यह पृष्ठ है अगर bash के लिए मूल बातें समझाना
क्रिस्टोफ़ डे ट्रॉयर

2
यदि फ़ाइल मौजूद है और निष्पादन योग्य है, तो यह सत्य का मूल्यांकन करता है।
जॉब

क्या आपने कोशिश की help if?
अविनाश राज

जवाबों:


26

से man bashपृष्ठों (विशेष रूप से सशर्त अभिव्यक्ति अनुभाग):

   -a file
          True if file exists.
   -b file
          True if file exists and is a block special file.
   -c file
          True if file exists and is a character special file.
   -d file
          True if file exists and is a directory.
   -e file
          True if file exists.
   -f file
          True if file exists and is a regular file.
   -g file
          True if file exists and is set-group-id.
   -h file
          True if file exists and is a symbolic link.
   -k file
          True if file exists and its ``sticky'' bit is set.
   -p file
          True if file exists and is a named pipe (FIFO).
   -r file
          True if file exists and is readable.
   -s file
          True if file exists and has a size greater than zero.
   -t fd  True if file descriptor fd is open and refers to a terminal.
   -u file
          True if file exists and its set-user-id bit is set.
   -w file
          True if file exists and is writable.
   -x file
          True if file exists and is executable.

   [...]

3
यह ध्यान दिया जाना चाहिए, एक निर्देशिका के लिए निष्पादन योग्य इसका मतलब है कि इसे ट्रैवर्स किया जा सकता है।
रिच रेमर

2
@StevenPenny प्रश्न का दूसरा भाग "मैं इस मैनुअल पृष्ठ को कैसे खोज सकता था?"
स्पर्हाक

1
@ ड्रूबेन जब आप testबैश में आमंत्रित करते हैं, तो आप testबाइनरी को आमंत्रित नहीं कर रहे हैं । इसके बजाय, आप बैश के testबिलिन को लागू कर रहे हैं, जिसमें help testअन्य स्थानों के साथ प्रलेखन है । man testउस कारण से कुछ मामलों में भ्रामक हो सकता है।
क्रिस डाउन

11

ifस्वयं एक शेल कीवर्ड है, इसलिए आप इसके बारे में जानकारी पा सकते हैं help ififअपने आप में केवल इस आधार पर शाखाएं कि अगला आदेश सही (0) या गलत (शून्य नहीं) है। हालांकि आप वास्तव में क्या चाहते हैं, man [या man test, कहां के [लिए एक उपनाम है test। वह कथन वास्तव में निष्पादित हो रहा है test -x /etc/rc.local, जो यह देखने के लिए परीक्षण करता है कि क्या वह फ़ाइल मौजूद है और निष्पादन योग्य है (या खोज अनुमति है)।


1
man [काम भी करता है।
स्पार्कवॉक

1
यह न केवल यह देखने के लिए परीक्षण करता है कि क्या यह मौजूद है, बल्कि यह परीक्षण करता है कि क्या फ़ाइल निष्पादन योग्य है या नहीं।
टॉम फेनेच

@TomFenech, आह, सही ...
psusi

@psusi ifशेल बिल्ट नहीं है, यह शेल कीवर्ड type ifहै। इसके लिए यह कमांड चेक करें।
अविनाश राज

3

से info test:

`-x FILE'
    True if FILE exists and execute permission is granted (or search permission, if it is a directory).

एक निर्देशिका पर निष्पादित अनुमति की आवश्यकता है ताकि वह इसमें सीडी कर सके (यानी, कुछ निर्देशिका को आपकी वर्तमान कार्यशील निर्देशिका बनाने के लिए)।

फ़ाइलों की "इनकोड" जानकारी तक पहुंचने के लिए निर्देशिका पर निष्पादन की आवश्यकता है। आपको फ़ाइलों के इनोड्स को पढ़ने के लिए निर्देशिका खोजने के लिए इसकी आवश्यकता है। इस कारण से किसी निर्देशिका पर निष्पादित अनुमति को अक्सर इसके बजाय खोज अनुमति कहा जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.