সমান্তরাল বা অন্য একটি পরে চালানো একটি bash স্ক্রিপ্ট কমান্ড না?


7

নিচের শেল স্ক্রিপ্টটি ধরুন, উদাহরণস্বরূপ:

#!/bin/bash
python do_this_first.py 
python do_this_second.py
python do_this_last.py

যখন আমি উপরের রান করি, তখন 3 পাইথন স্ক্রিপ্ট সমান্তরাল রান করবে? আমি চাই 'do_this_second' শুধুমাত্র 'do_this_first' সম্পন্ন হওয়ার পরেই চালানো।

উত্তর:


23

যেমন দাঁড়িয়েছে, তেমনি তারা ব্যর্থ হয়ে নাও না, নির্বিশেষে একে অপরকে চালানো হবে। তারা শুধুমাত্র কিছু সময়ে প্রস্থান করতে হবে, তারপর পরবর্তী কমান্ড চালানো হয়। একটার পর একটা.

যদি পূর্ববর্তী কমান্ডগুলি কোন ত্রুটির সাথে প্রস্থান না করে তবেই আপনি তাদের নির্বাহ করতে চান তবে ব্যবহার করুন:

python do_this_first.py && python do_this_second.py && python do_this_last.py

এখানে, দুই ampersands একটি যৌক্তিক মত কাজ AND। দ্বিতীয় স্ক্রিপ্ট শুধুমাত্র তখনই চালানো হবে যখন প্রথমটি পরিষ্কারভাবে বেরিয়ে আসবে এবং তৃতীয়টি কেবল তখনই চলবে যখন দ্বিতীয়টি ত্রুটি ছাড়াই চলবে। যদি কোন ত্রুটি ছিল, নিম্নলিখিত কমান্ডের কোনটি চালানো হবে।


তবে আপনি যদি সমান্তরালভাবে তাদের চালাতে চান তবে আপনি এটি করতে পারেন - তবে অন্যান্য প্রচুর বিকল্প রয়েছে:

python do_this_first.py &
python do_this_second.py &
python do_this_last.py &

2

Bash ক্রমিক। শুরুতে do_this_first.py ফাইলটি ব্যাখ্যা করা হবে। পাইথন এটি কার্যকর করার পরে, নিয়ন্ত্রণ আবার bash স্থানান্তর করা হয়। পরিবর্তে bash python do_this_second.py এবং এভাবে চালানো হবে ..
তাই মূলত, do_this_first শুরু হয় এবং শেষ হয়, do_this_second শুরু হয় এবং শেষ হয় এবং তারপর do_this_last শুরু হয় এবং শেষ হয়।


2

যেমন slhck বলেন, নিম্নলিখিত একটি বিকল্প।

python do_this_first.py && python do_this_second.py && python do_this_last.py

অথবা একটি লাইন একটি ত্রুটি কোড ফেরৎ যদি আপনি সেট-ই, অবিলম্বে প্রস্থান করতে পারে, যা পারে।

#!/bin/bash

# Exit immediately if a command exits with a non-zero status.
set -e

python do_this_first.py 
python do_this_second.py
python do_this_last.py

আমার জন্য, এই শেষ এক আরও পাঠযোগ্য।

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