perl - Group Already Exist -
#! / Usr / bin / perl सख्त का उपयोग करें; चेतावनियों का उपयोग करें; मेरा $ group_name = & lt; STDIN & gt ;; मेरा $ group_id = & lt; STDIN & gt ;; मेरी $ विकल्प = & lt; STDIN & gt ;; प्रिंट "* मेरा मेनू * \ n"; प्रिंट "* * \ n"; प्रिंट "* 1. यूनिक्स ग्रुप बनाएं \ n"; प्रिंट करें * * 2. यूनिक्स ग्रुप हटाएं * \ n "; प्रिंट "* 3. एक यूनिक्स उपयोगकर्ता बनाएं \ n"; प्रिंट करें "* 4. यूनिक्स यूजर को हटा दें \ n"; प्रिंट "* 5. छोड़ें * \ n"; प्रिंट "* * \ n"; प्रिंट "************************************************************************************************ ****** \ n "; प्रिंट करें * अपनी पसंद और प्रवेश करें; \ n "; $ विकल्प = & lt; STDIN & gt; ; Chomp $ विकल्प; अगर ($ विकल्प == 1) {प्रिंट "*************************************************************************** प्रिंट करें "यूनिक्स ग्रुप बनाएं \ n"; प्रिंट "****************************************************************"; प्रिंट करें "बनाने के लिए समूह नाम दर्ज करें & gt; \ n"; Chomp ($ group_name = & lt; STDIN & gt;); प्रिंट करें "बनाने के लिए समूह आईडी दर्ज करें & gt; \ n"; Chomp ($ group_id = & lt; STDIN & gt;); अगर (! 'Grep -i $ group_name / etc / group') {system ("groupadd -g $ group_id $ group_name"); प्रिंट "समूह सफलतापूर्वक बनाया गया! \ N"} और {प्रिंट "समूह पहले से मौजूद है! \ N"; }}
जब मैं स्क्रिप्ट चलाता हूं और समूह आईडी में प्रवेश करता हूं तब वापस समूह आता है, पहले से ही मौजूद है। इससे कोई फर्क नहीं पड़ता कि मैं क्या ईमानदारी में प्रवेश करता हूं यह वापस आ रहा रहता है समूह पहले से ही अस्तित्व में है, जो मुझे पता है कि समूह मौजूद नहीं है। कोई सुझाव?
समस्या पंक्ति में है:
if ( 'Grep -i $ group_name / etc / group')
यहां आप बोली '...'
का उपयोग करते हैं, इसलिए perl
इसे शाब्दिक स्ट्रिंग के रूप में व्यवहार करेगा बूलियन संदर्भ में स्ट्रिंग, जो रिक्त नहीं है, को सच में eveluated किया जाएगा, इसलिए आपका यदि
हालत हमेशा विफल रहता है, तो else
शाखा निष्पादित होती है।
To perl
से सिस्टम आदेश चलाएं, आपको बैकस्टिक्स `...` का उपयोग करना चाहिए या सिस्टम ()
builtin फ़ंक्शन का उपयोग करना चाहिए:
यदि (! `Grep -i $ group_name / etc / group`)
Comments
Post a Comment