একক লাইন ব্যাশ লুপে & (অ্যাম্পারস্যান্ড) ব্যবহার করুন


58

আমি এই কমান্ডটি সফলভাবে ব্যবহার করছি, যা একটি কনফিগার ফাইলে একটি ভেরিয়েবল পরিবর্তন করে তারপরে একটি লুপের মধ্যে পাইথন স্ক্রিপ্ট কার্যকর করে:

for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py; done

যেহেতু প্রত্যেকে DoMyScript.pyনিজের সমাপ্তির আগে চালাতে প্রায় 30 সেকেন্ড সময় নেয়, তাই আমি পরের পটভূমিতে সেগুলি প্রেরণ করতে চাই।

আমি যা পরিচিত তার সাথে চেষ্টা করেছি নীচের মতো একটি অ্যাম্পারস্যান্ড যোগ করে:

for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py &; done

যাইহোক, নীচের ত্রুটির ফলাফল:

-বাশ: অপ্রত্যাশিত টোকেনের নিকটে সিনট্যাক্স ত্রুটি `; '

উত্তর:


85

;পরে ড্রপ &। এটি একটি সিনট্যাকটিক প্রয়োজনীয়তা

for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py & done

1
ধুর, 43 সেকেন্ড খুব ধীর :)
মার্টিন ভন উইটইচ

2
@ মার্টিনভনউইটিচ, কমরেসেশন করার মাধ্যমে আপনার উত্তরের একটি +1 ;-)
ইরুভার

4
যদিও এই প্রশ্নের উত্তর পাওয়া, তাহলে সম্ভবত তা ওপি সময় সব পাইথন দৃষ্টান্ত শুরু করেছেন এবং initialises এদের সকলের দেখতে পাবেন হিসেবে চায় না numbers.txtধারণকারী 255
স্টাফেন চেজেলাস

1
@ স্টেফেনচাজেলাসের সাথে একমত হয়েছেন, তবে প্রশ্নে দেওয়া তথ্য দিয়ে আমরা এটি সম্পর্কে কী করতে পারি তা নিশ্চিত নই। এর যথাযথ সমাধানের জন্য সম্ভবত আরও প্রসঙ্গের প্রয়োজন।
একটি সিভিএন

3
বাশ ম্যানুয়াল রেফারেন্সটি এখানে: gnu.org/software/bash/manual/bashref.html# তালিকাগুলি
গ্লেন জ্যাকম্যান

14

1_CR এর উত্তরে স্টিফেনের মন্তব্য দেওয়া , আপনি সম্ভবত এটি চান:

for i in {114..255}; do { echo $i > numbers.txt && python DoMyScript.py; } & done

ধন্যবাদ গ্লেন আপনার কোডের কয়েকটি প্রকরণের চেষ্টা করেছি যা আমি পঠনযোগ্যতা বৃদ্ধির কারণে পছন্দ করি তবে আমার অতিরিক্ত ঘুমের প্রয়োজনের কারণে এটি আমার পক্ষে কার্যকর হয়নি। এটি forপরিসীমাটিতে সর্বশেষ সংখ্যাটিও পুনরাবৃত্তি করবে ... এই মুহুর্তে আমি যা খুশি তা এখানে: for((i=1;i<100;i+=1)); do echo $i > numbers.txt;sleep 3; python DoMyScript.py & doneব্যাকগ্রাউন্ডে প্রক্রিয়াটি সম্পাদন করার মূল প্রশ্নটি সমাধান করা হয়েছে।
ljs.dev

* অবশ্যই, আমার <=মূল প্রশ্নটি ছিল, তাই আপনার সরবরাহিত পরিসরটি সরবরাহ করা তথ্যের ভিত্তিতে সম্পূর্ণ উপযুক্ত ছিল। আবার, পৃথক পদ্ধতির জন্য ধন্যবাদ
ljs.dev

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.