ইউনিক্স একাধিক কমান্ড পৃথক করে যার শেষে '&' (পটভূমিতে চালিত) থাকে


4

ইউনিক্সে নিয়মিত কমান্ড পৃথক করার জন্য শেষে সেমিকোলনটি এভাবে রাখা হয়:

cd /path/to/file;./someExecutable;

তবে মনে হচ্ছে এটি কমান্ডের মতো কাজ করছে না:

./myProgram1 > /dev/null &
./myProgram2 > /dev/null &
=>./myProgram1 > /dev/null &;./myProgram2 > /dev/null &;

এই ধরনের আদেশগুলি আলাদা করার কোনও উপায় আছে কি?

এছাড়াও, যদি 2 টির নীচে হয় তবে আমি কম্যান্ড প্রম্পটে পেস্টটি অনুলিপি করি? ধন্যবাদ।

cd /path/to/file;./someExecutable;

cd /path/to/file;
./someExecutable;

উত্তর:


12

ভাল ";" শেলটি কমান্ডটি শেষ হওয়ার জন্য অপেক্ষা করে এবং তারপরে পরবর্তী কমান্ডটি দিয়ে চালিয়ে যায়।

"&" যে কোনও প্রক্রিয়া সরাসরি পটভূমিতে প্রেরণ করবে এবং পরবর্তী কমান্ডটি দিয়ে চালিয়ে যাবে - প্রথম কমান্ডটি শেষ হয়ে গেছে বা এখনও চলছে কিনা তা বিবেচ্য নয়।

সুতরাং "&" আপনার প্রত্যাশার মতো কাজ করবে না।

তবে আসলে আপনি যা আশা করেন তা আমি নিশ্চিত নই।

আপনার শেল এ চেষ্টা করুন:

sleep 2 && echo 1 & echo 2 & sleep 3 && echo 3

এটি আউটপুট হবে: 2 1 3

এখন এটির সাথে তুলনা করুন

sleep 2 ; echo 1 & echo 2 & sleep 3 ; echo 3

যা আউটপুট 1 2 3 হবে

শুভেচ্ছা।


1
সুতরাং আমি যদি পটভূমিতে একই সময়ে 2 কমান্ড চালাতে চাই। এটি হওয়া উচিত। / মাইপ্রগ্রাম 1> / দেব / নাল &। / মাইপ্রগ্রাম 1> / দেব / নাল এবং ডান?
স্ট্যান

1
হ্যাঁ. কিন্তু আসলে একই ন্যানো-সেকেন্ডে হুবহু ঘটছে না: পি
জানুয়ারী।

14

command1 & command2 কার্যকর করা হবে command1, প্রেক্ষাপটে প্রসেসটি প্রেরণ করবে এবং অবিলম্বে সম্পাদন শুরু করবে command2, এমনকি যদি command1এটি সম্পন্ন না হয়।

command1 ; command2চালানো হবে command1এবং তারপর চালানো command2একবার command1শেষ কিনা নির্বিশেষে command1সফলভাবে প্রস্থান করেছে।

command1 && command2সফলভাবে কার্যকরভাবে সম্পাদন শেষ হয়ে command2গেলে কেবল কার্যকর করা হবে command1। যদি command1ব্যর্থ হয়, command2কার্যকর করা হবে না।

(... এছাড়াও, সম্পূর্ণতার জন্য ...)

command1 || command2শুধুমাত্র চালানো হবে command2যদি command1ব্যর্থ হয় (ক নন-জিরো প্রস্থান কোড সহ প্রস্থানের।)


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