सवाल शेल स्क्रिप्ट निष्पादित करने के लिए "./" का उपयोग नहीं कर सकता


शायद यहां कोई मेरी मदद करने में सक्षम होगा। दो मशीनों पर उबंटू 12.04 एलटीएस (कुबंटू) स्थापित किया है। .Bashrc और .bash_profile फ़ाइलें समान हैं क्योंकि प्रत्येक मशीन पर फ़ाइल संरचनाएं समान होती हैं।

मशीन 1 पर मैं सरल टर्मिनल विंडो के भीतर बैश स्क्रिप्ट चलाता हूं: ./scriptname.sh

मशीन 2 पर, मैं यह नहीं कर सकता और इसका उपयोग करना चाहिए: sh scriptname.sh न ही मैं ./ और टैब-स्क्रिप्ट फ़ाइल नाम को पूरा कर सकता हूं।

सभी निष्पादन योग्य बिट्स सही ढंग से सेट होते हैं, सभी फ़ाइलों और फ़ोल्डर्स में सही अनुमतियां होती हैं। स्क्रिप्ट के शीर्षलेख में शेबांग सही ढंग से सेट किया गया है।

कोई विचार क्यों यह होगा?

चियर्स


4
2017-11-05 01:23


मूल


भी पूछा यूनिक्स और लिनक्स तथा स्टैक ओवरफ़्लो - glenn jackman
यह रूट, या एक गैर रूट उपयोगकर्ता के लिए है? कर देता है echo $SHELL दोनों मशीनों पर पुष्टि है कि खोल बैश है? - Lars Rohrbach
गैर रूट उपयोगकर्ता, दोनों मशीनों पर $ SHELL रिटर्न / बिन / बैश गूंजें - adeliefan


जवाब:


एकमात्र चीज जो इसका कारण बनती है वह यह है कि स्क्रिप्ट निष्पादन योग्य नहीं है। मुझे पता है कि आपने कहा कि निष्पादन योग्य बिट सेट है, लेकिन सुनिश्चित करें कि:

chmod +x scriptname.sh

2
2017-11-05 02:07



नहीं - यह निश्चित रूप से सही सेट है। मुझे लगता है कि मेरे पर्यावरण सेट अप (.bashrc या .bash_profile) के साथ कुछ गड़बड़ होना है, लेकिन यह नहीं देख सकता कि यह कहां फंस गया है। - adeliefan


मैंने स्वतः पूर्ण होने के साथ उत्पन्न होने वाली विभिन्न समस्याओं को पढ़ा है, जरूरी नहीं कि 12.04 के साथ, और निम्नलिखित दो विकल्प प्रयास करने योग्य लगते हैं:

पहला प्रयास बाश प्रोग्राम करने योग्य पूरा करने अक्षम: दोनों में इन तीन पंक्तियों को टिप्पणी करें /etc/bash.bashrc और उपयोगकर्ता में $HOME/.bashrc:

 if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
     . /etc/bash_completion
 fi

आप पाते हैं कि उन पंक्तियों के साथ पहले से ही टिप्पणी की गई है # सामने, इस मामले में बस इसे छोड़ दें।

तो दूसरी बात, कोशिश करो बैश-पूर्णता को पुनः स्थापित करना:

sudo apt-get purge bash-completion
sudo mv /etc/bash_completion.d /etc/bash_completion.d.bak
sudo apt-get install bash-completion

1
2017-11-05 02:13



सुझाव लार्स के लिए धन्यवाद, हालांकि इसमें कोई फर्क नहीं पड़ता। - adeliefan
खैर, डर्न। मुझे लगता है कि ऐसा करने के बाद आप पुनः लॉग-इन करते हैं? - Lars Rohrbach


आपके द्वारा देखी जाने वाली त्रुटियां "नोएक्स" संपत्ति के साथ घुड़सवार मीडिया पर निष्पादन योग्य चलाने की कोशिश कर सकती हैं। माउंट टाइप करें, और उस डिवाइस के गुणों की जांच करें जिसमें स्क्रिप्ट है। यदि आवश्यक हो तो माउंट के / etc / fstab गुणों को बदलें।


1
2017-11-05 05:59