2012-07-15 14 views
10

के लिए खाली निकाय हाय मैं लिखना और शरीर लूप खाली करना चाहता हूं। मैं सिर्फ लूप काउंटर को बढ़ाना चाहता हूं इसलिए मैं चाहता हूं कि सीपीयू किसी भी आईओ ऑपरेशन के बिना व्यस्त रहें। यहाँ मैं क्या लिखा है है, लेकिन यह मुझे एक त्रुटि देता है:लूप लिनक्स शैल

#!/bin/bash 
for (( i = 0 ; i <= 1000000; i++ )) 
do 
done 


[email protected]:~# ./forLoop 
./forLoop: line 4: syntax error near unexpected token `done' 
./forLoop: line 4: `done' 

उत्तर

23

आप एक पाश शरीर में कम से कम एक आदेश निर्दिष्ट करना होगा।

इस तरह के उद्देश्यों के लिए सबसे अच्छा कॉमांड ia एक कोलन :, आमतौर पर no-op shell command के रूप में उपयोग किया जाता है।

+0

"इसे शैल बिल्टिन के लिए समानार्थी समझा जा सकता है।" - यह इस जवाब को पहले के समान बनाता है। ;) –

3

आप true या false (सफलतापूर्वक या असफल क्रमशः कुछ भी नहीं) जैसे पाश अंदर एक नहीं सेशन आदेश डाल सकता है।

यह एक तंग लूप होगा और सीपीयू जला देगा। जब तक आप ठंडे सुबह अपने कंप्यूटर को गर्म नहीं करना चाहते हैं, तो आप बस i=1000000 कह सकते हैं और लूप के समान प्रभाव डाल सकते हैं।

क्या आप इसे प्राप्त करने की कोशिश कर रहे हैं?

+0

एक एनओपी "सीपीयू जला" नहीं देगा, यह 100% उपयोग दिखा सकता है लेकिन यह नगण्य ताप उत्पादन का उत्पादन करेगा। आपको अपने प्रोसेसर को गर्म करने के लिए वास्तव में काम करने की ज़रूरत है। – Thomas

+0

दिलचस्प बिंदु। लूप काउंटर में वृद्धि नहीं होगी? –

+0

शायद पर्याप्त नहीं है, प्रोसेसर लूप काउंटर वृद्धि के बजाय सीएमपी/जेएनई निर्देशों में अपना अधिकांश समय व्यतीत करेगा। लेकिन लूप में कुछ अंकगणितीय निर्देशों को यह करना चाहिए (जैसे कुछ गुणा/विभाजन)। – Thomas

1
#!/bin/bash 
let i=0 
while [[ $i -le 1000000 ]]; do 
    let i++ 
done 
0

आप sleep x उपयोग करें यदि आप सेकंड के एक्स संख्या के लिए देरी करने के लिए चाहते हो सकता है।

+0

यह इस लूप को व्यस्त-प्रतीक्षा लूप होने का कारण नहीं देगा। –