शेल स्क्रिप्ट के माध्यम से कमांड नहीं मिला, लेकिन टर्मिनल पर काम करता है


18

मेरी .sh फ़ाइल में मैं चींटी या mv या cp कमांड नहीं दे सकता, लेकिन टर्मिनल पर एक ही कमांड निष्पादित करता है। मेरी स्क्रिप्ट है

नमूना। s फ़ाइल

#! /bin/sh
cp filename.so filename_org.so
android update project -p .
ant clean
ant release

पथ .bashrc फ़ाइल में जोड़ा गया।

export PATH=$PATH:/usr/bin/

cp, mv, ant केवल टर्मिनल के तहत काम कर रहे हैं, न कि झालर के माध्यम से।


1
हमें युर समस्या के बारे में अधिक जानकारी दें ..
रुबन सेवी

android/ ant, क्या ये बायनेरिज़ / usr / bin हैं?
यूवीवी

जवाबों:


13

जैसा कि आपकी स्क्रिप्ट एक शेल स्क्रिप्ट ( /bin/sh) है, तो आपकी PATHप्रविष्टियाँ उस तरह .bashrcसे नहीं पढ़ी जाएंगी जैसे कि bash( /bin/bash) इंटरेक्टिव शेल के लिए है।

किसी विशिष्ट उपयोगकर्ता द्वारा चलाए जाने वाले स्क्रिप्ट के लिए अपनी PATHप्रविष्टियां उपलब्ध कराने के लिए /bin/sh, उस उपयोगकर्ता की होम निर्देशिका में फ़ाइल में PATHप्रविष्टि जोड़ें .profile


इसके अतिरिक्त आप स्क्रिप्ट के भीतर अपने प्रत्येक आदेश के लिए पूर्ण पथ जोड़ सकते हैं:

/bin/cp filename.so filename_org.so

या अपनी स्क्रिप्ट की शुरुआत में PATHसभी आवश्यक सहित चर सेट करें $PATHS

PATH=$PATH:/bin:/usr/bin:xxx
export PATH

2
सही विश्लेषण, लेकिन आपने सही समाधान का उल्लेख नहीं किया है, जिसे PATHइसके बजाय उचित स्थान पर सेट करना है .bashrc। स्क्रिप्ट को बैश स्क्रिप्ट में बदलने से कोई फर्क नहीं पड़ेगा: .bashrcकेवल इंटरेक्टिव गोले द्वारा लोड किया जाता है।
गिल्स एसओ- बुराई को रोकें '21

2

बाइनरी चलाते समय एक ही मुद्दा था जिसका रास्ता bashrc में सेट किया गया है।

निम्नलिखित को करके समस्या हल की:

बाइनरी जोड़ें या बाइनरी / usr / बिन में एक लिंक जोड़ें।

ln -s [path_to_binary] [name_of_executable] 

फिर उपयोग करके देखें

ls -l

आप प्रवेश फॉर्म bashrc निकाल सकते हैं।


0

यदि आपके पास छोटी स्क्रिप्ट है और आप अपना काम समाप्त कर सकते हैं तो आप एक आसान काम कर सकते हैं

कमांड के नीचे कमांड लाइन के उपयोग पर जाएं

which your_command 

ऊपर कमांड कमांड के पथ उपयोग सहित आउटपुट प्रिंट करेगा

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