किसी की मदद कर सकते हैं निम्नलिखित व्याख्या करते हैं: अगर मैं टाइपबैश स्क्रिप्टिंग - शेल कमांड उत्पादन पुनर्निर्देशन
:
a=`ls -l`
तो ls कमांड के उत्पादन में चर a
में सहेजा गया है लेकिन अगर मैं कोशिश:
a=`sh ./somefile`
परिणाम खोल करने के लिए outputed है (01 परिवर्तनीय
मैं अपेक्षा करता हूं कि वेरिएबल में संग्रहीत करने के लिए 'somefile
' स्क्रिप निष्पादित करने के लिए खोल का परिणाम ऑपरेशन था।
कृपया मेरी समझ के साथ क्या गलत है और ऐसा करने का एक संभावित तरीका बताएं।
धन्यवाद।
संपादित करें:
बस स्पष्ट करने के लिए, स्क्रिप्ट 'somefile
' या मौजूद नहीं हो सकता है। यदि यह exsists तो मैं चाहता हूं कि स्क्रिप्ट का आउटपुट 'a
' में संग्रहीत किया जाए। यदि नहीं, तो मुझे त्रुटि संदेश "a
'
इसकी अनुमतियों के बारे में नहीं है ... मैं या तो त्रुटि संदेश या वैरिएबल में संग्रहीत मूल्यों को वापस करना चाहता हूं। –
मैं जो कह रहा हूं वह है कि आपको स्क्रिप्ट चलाने के लिए sh चलाने की आवश्यकता नहीं है (और यदि आप करते हैं तो sh आउटपुट पर अपनी फ़ायरवॉल लगाएगा)। बस सीधे स्क्रिप्ट चलाएं और इसके लिए, आपको इसे 'chmod + x' करने की आवश्यकता है। – paxdiablo
निम्न का प्रयास करें: "chmod u + x somefile; a ='।/ somefile' "और देखें कि क्या एक सेट पर सेट हो जाता है। – paxdiablo