क्यों `। / 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.