क्यों `। / file.py` काम कर रहा था लेकिन` bash file.py` काम नहीं कर रहा था?


0

क्यों ./file.pyकाम कर रहा था, लेकिन bash file.pyकाम नहीं कर रहा था ?
जब मैं चलाने bash file.pyया . file.pyया source file.pyइस तरह त्रुटि मिलती है:
file.py: line 4: syntax error near unexpected .....
लेकिन ./file.pyठीक काम करता है।

file.py
#!/usr/bin/python3.4 if __name__ == "__main__": print("something")

जवाबों:


4

स्क्रिप्ट शुरू करते समय (एक कमांड के रूप में), यह हैश-बैंग को देखता है ( #!) यह जानने के लिए कि स्क्रिप्ट शुरू करने के लिए क्या उपयोग करना है। आपकी स्क्रिप्ट में, मैं शर्त लगा रहा हूं कि यह #!/usr/bin/pythonया इसके साथ शुरू होता है । जब आप इसे शुरू करते हैं ./script.py, तो यह उस पहली पंक्ति को पढ़ता है और /usr/bin/python ./script.pyगुप्त रूप से निष्पादित होता है ।

यदि आप इसका उपयोग करके आगे बढ़ते हैं bash ./script.py, तो यह दुभाषिया को बैश होने की उम्मीद करता है, न कि पायथन।


1
अधिक सटीक रूप से, यदि आप उपयोग करते हैं bash ./script.py, तो यह अजगर के बजाय बैश स्क्रिप्ट के रूप में व्याख्या करने की कोशिश करता है । यह बैश स्क्रिप्ट नहीं है, इसलिए वाक्य रचना सभी गलत है, और यह गलत है।
— गॉर्डन डेविसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.