2012-06-27 14 views
6

वहाँ while में पाश के लिए एक रास्ता अगर आप python -c साथ स्क्रिप्ट शुरू है? यह मंच या अजगर संस्करण से संबंधित होना प्रतीत नहीं होता ...अजगर -c और `while`

लिनक्स

[[email protected] ~]$ python -c "import os;while (True): os.system('ls')" 
    File "<string>", line 1 
    import os;while (True): os.system('ls') 
       ^
SyntaxError: invalid syntax 
[[email protected] ~]$ 
[[email protected] ~]$ python -V 
Python 2.6.6 
[[email protected] ~]$ uname -a 
Linux Hotcoffee 2.6.32-5-amd64 #1 SMP Sun May 6 04:00:17 UTC 2012 x86_64 GNU/Linux 
[[email protected] ~]$ 

विंडोज

C:\Users\mike_pennington>python -c "import os;while True: os.system('dir')" 
    File "<string>", line 1 
    import os;while True: os.system('dir') 
       ^
SyntaxError: invalid syntax 

C:\Users\mike_pennington>python -V 
Python 2.7.2 

C:\Users\mike_pennington> 

मैं while बयान में कोष्ठक को हटाने की कोशिश की है लेकिन ऐसा कुछ नहीं लगता है।

उत्तर

8
python -c $'import subprocess\nwhile True: subprocess.call(["ls"])' 

काम करेगा (ध्यान दें $'...' और \n)।

लेकिन यह हो सकता है कि यह केवल तहत काम करता है - मुझे यकीन है कि नहीं कर रहा हूँ ...

+2

के वर्षों के ओएस के बजाय उपप्रक्रिया प्रयोग करने के लिए upvoted से' पर्ल -e' वाक्य रचना पर झुका रहा हूँ। सिस्टम –

+1

'os.system()' स्पष्ट रूप से कैनोलिक नहीं है, लेकिन मुझे पता चला है कि छोटे प्रश्न [so] पर बेहतर हैं। 'Os' यह सिर्फ एक उदाहरण है,' प्रिंट 1234' होना चाहिए था, तो 'subprocess' –

+0

तुलना में कम है (या' प्रिंट (1234) ') पर्याप्त रूप में अच्छी तरह हो गया होता। लेकिन यह सब का मुख्य हिस्सा नहीं है ... – glglgl

4

मल्टीलाइन कथन पाइथन में ; को अलग-अलग कथन के बाद शुरू नहीं हो सकता है - अन्यथा, कोड ब्लॉक के बारे में अस्पष्टताएं हो सकती हैं। बस ; के चरण में लाइन ब्रेक का उपयोग करें। यह लिनक्स पर "काम":

$ python -c "import os 
while True: os.system('ls')" 
नहीं

यकीन है कि कैसे विंडोज पर यह दर्ज करने के लिए, लेकिन क्यों बस आदेशों एक .py फ़ाइल में नहीं लिखा होगा कि यह एक लाइन से अधिक है?

+0

@MikePennington काम करता है: यदि यह एक एक बार उपयोग किए है, तुम क्यों दुभाषिया लांच नहीं है और वहाँ आदेशों में प्रवेश? –

+0

खोल पुनर्निर्देशन और पाइप, कुछ हद तक आसान 'bash' ऊपर-तीर संपादन अगर मैं एक गलती करते हैं ... और मैं अभी भी पर्ल उपयोग –

2

,, खिड़कियां के बारे में पता है, तो सब आप चाहते हैं एक-लाइनर्स में टाइप करने में सक्षम होना है न आप विचार कर सकते हैं लाइन के अंदर टूट जाता है उद्धरण:

% python -c "import os; 
while (True): 
    os.system('ls')" 
1

तुम सच में खिड़कियों में ऐसा करना आवश्यक है, आप कार्यकारी इस्तेमाल कर सकते हैं:

python -c "exec \"import os;\rwhile True:\r os.system('dir')\"" 

(मैं एवजी dir तो यह मेरी खिड़की प्रणाली पर)