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


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.