पढ़ने के लिए `नहीं खोल सकते: ऐसी कोई फ़ाइल या निर्देशिका नहीं


0

मैं rsh6 पर .sh फ़ाइल चलाने की कोशिश कर रहा हूँ और यह त्रुटि हो रही है ...

cannot open '' for reading: No such file or directory

मैं जो स्क्रिप्ट चला रहा हूं, वह आंतरिक रूप से उसी स्क्रिप्ट में स्थित अन्य स्क्रिप्ट्स को संदर्भित कर रही है। मैं उनका उपयोग करके देख सकता हूं ls -la

नोट: यह स्क्रिप्ट आरएच 4 पर पूरी तरह से ठीक काम कर रही है। मुझे नई ताजा आरएच 6 मशीन मिली, जिस पर मैं अपनी स्क्रिप्ट चलाने की कोशिश कर रहा हूं।

मेरी abc.shस्क्रिप्ट नीचे बताई गई है

. fox_comm_server_details.sh
. fox_comm_topic_names.sh
. fox_comm_sh_tools.sh

अन्य स्क्रिप्ट ( .sh) फ़ाइलों को संदर्भित करता है ।

जब मैं अपना abc.sh (साथ ./abc.sh) चलाता हूं तो यह कहता है

fox_comm_server_details.sh: cannot open [No such file or directory]

मैंने पुष्टि की कि आवश्यक स्क्रिप्ट निर्देशिका में मौजूद हैं और मेरे पास उन पर अनुमति है। अगर मैं abc.shनीचे के रूप में अद्यतन ...

. ./fox_comm_server_details.sh
. ./fox_comm_topic_names.sh
. ./fox_comm_sh_tools.sh

इस बार यह लापता फ़ाइलों के बारे में शिकायत नहीं कर रहा है, लेकिन नीचे बताए अनुसार कुछ अलग त्रुटि ...

read_fox_comm_servers_list[134]: read_fox_comm_servers_list_defaults[37]: local: not found [No such file or directory]

read_fox_comm_servers_listऔर read_fox_comm_servers_list_defaultsऐसे कार्य हैं fox_comm_sh_tools.shजिन्हें निम्नानुसार परिभाषित किया गया है ...

function read_fox_comm_servers_list
{
        read_fox_comm_servers_list_defaults
        read_fox_comm_servers_list_overrides
}

function read_fox_comm_servers_list_defaults
{
        local tempfile=/tmp/read_fox_comm_servers_list_defaults.$$
}

और उपर्युक्त त्रुटि हो रही है।


3
आप जिस स्क्रिप्ट को चलाने का प्रयास कर रहे हैं उसे शामिल करने के लिए कृपया अपने प्रश्न को संपादित करें।
DavidPostill

और ls -l कमांड का परिणाम प्रदान करते हैं। क्या आपने स्क्रिप्ट को पढ़ने की अनुमति को गिरफ्तार किया था? वे इस अनुमति से काम नहीं कर सकते / ओ
रोमियो निनोव

आपकी स्क्रिप्ट की पंक्ति 1 क्या है। यदि यह है #!/bin/sh, तो क्या आप जानते हैं कि आपके सिस्टम में क्या /bin/sh है (उदाहरण के लिए, यह बैश या डैश है)? ... मुझे लगता है कि 134और 37त्रुटि संदेश (ओं) में लाइन नंबर हैं। आप शायद हम पर संपूर्ण 135+ लाइन स्क्रिप्ट को डंप करने के लिए सही नहीं हैं, लेकिन क्या आपने स्क्रिप्ट को तब तक हटाने की कोशिश की है जब तक कि त्रुटि दूर न हो जाए? कोशिश करें कि - आपके द्वारा हटाई गई अंतिम चीज संभवतः समस्या का एक बड़ा सुराग होगी।
जी-मैन

जवाबों:


0

अंधेरे में एक शॉट: कृपया इस लिंक पर क्लिक करके अपने प्रश्न को संपादित करें क्योंकि यह समझना बहुत मुश्किल है।

सामान्य तौर पर ऐसा लगता है कि कहीं एक स्क्रिप्ट (या एक सबस्क्रिप्ट में) एक फ़ाइल नाम के साथ एक चर सेट नहीं किया गया है।
आप ''अपने त्रुटि संदेश में बिना नाम के नोटिस कर सकते हैं

पढ़ने के लिए '' नहीं खोल सकता: ऐसी कोई फ़ाइल या निर्देशिका नहीं

आप खोज सकते हैं कि आपके शेल में डीबग को सक्रिय करने में त्रुटि कहां है

set -x           # to activate debugging  
./myscript.sh    # here your script invocation  
set +x           # to stop debugging 

1
यह काफी काम नहीं करेगा। शेल विकल्प (जैसे, xtrace , या -xसंक्षेप में) माता-पिता से बच्चे के लिए पारित नहीं होते हैं, इसलिए यह केवल यह कहेगा कि उपयोगकर्ता चल रहा है myscript.sh, लेकिन स्क्रिप्ट में क्या होता है । उसके लिए आपको निम्नलिखित में से एक की आवश्यकता होगी: (1) set -x; . myscript.sh; set +x(शायद एक अच्छा विचार नहीं), (2) (set -x; . myscript.sh)(कोष्ठक पर ध्यान दें), (3) sh -x myscript.sh, या (4) संपादित करें myscript.shऔर शी -x-बैंग लाइन #!/bin/shपर संलग्न करें ( ऑन पहली पंक्ति)।
जी-मैन 19
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.