সমান্তরালে যে কমান্ড শেষ হয় না সম্পাদন


0

আমি কয়েকটি কমান্ড চালানোর চেষ্টা করছি যা কখনই শেষ হয় না। এই কমান্ডগুলি ডিরেক্টরি দেখায় এবং ফাইলগুলি পরিবর্তন করার পরে আপডেট করে। ধারণাটি হ'ল আমার একাধিক ফোল্ডার প্রয়োজন যা বিভিন্ন সরঞ্জাম দ্বারা দেখেছে, সেগুলি একক কমান্ড থেকে চালাতে সক্ষম।

সাধারণ কমান্ডগুলির জন্য যা প্রত্যাশিত হিসাবে প্রত্যাবর্তন করে, কমান্ডগুলি একটি ;কাজের সাথে পৃথক করে।

ls /;
cd /;
ls var;
cd var;
ls log;
cd log

যখন আমি অ-রিটার্নিং কমান্ডগুলি একসাথে চেইন করার চেষ্টা করি (যেমন tail -f <some_file>বা coffee -c -w <some_coffeescript_folder>কেবল প্রথম কমান্ডটি চলবে।

একক আদেশে এটি করার কোনও উপায় আছে? কমান্ডগুলি আমি একসাথে লিঙ্ক করার চেষ্টা করছি:

coffee -c -m -w public/javascript/*.coffee; \
stylus views/stylesheets/*.styl -w -m --out public/stylesheets/; \
stylus views/stylesheets/lib/*.styl -w -m --out public/stylesheets/lib/;

"একের পর এক" বলতে কী বোঝায় যদি প্রথমটি কখনও শেষ না করে? আপনি দ্বিতীয়টি কখন শুরু করতে চান?
হেনিং মাখোলম

@ হেনিংমখোলম প্রথমটি শেষ হবে না। আমি শুধু তাদের সব চালানো চাই। আমি মনে করি ধারাবাহিকভাবে এখানে সত্য নয়, সমান্তরালটি আরও সঠিক হবে be আমি প্রশ্ন আপডেট করেছি।
AlbertEngelB

উত্তর:


1

কমান্ডটিতে একটি অ্যাম্পারস্যান্ড যুক্ত করে আপনি এগুলি পটভূমিতে চালাতে পারেন:

coffee -c -m -w public/javascript/*.coffee &
stylus views/stylesheets/*.styl -w -m --out public/stylesheets/ &
stylus views/stylesheets/lib/*.styl -w -m --out public/stylesheets/lib/ &

আপনি যদি পটভূমিতে বর্তমানে চলমান সমস্ত কাজগুলি দেখতে চান তবে এটি করুন:

jobs -l

অগ্রভাগে ফিরে পটভূমির কাজ পেতে, fg ব্যবহার করুন (পিআইডি alচ্ছিক):

fg <PID>

অগ্রভাগের কাজটি প্রেরণ করতে (যা আপনার শেলটি "ব্লক করে") ব্যাকগ্রাউন্ড মোডে ফিরে যেতে Ctrl-Z / bg ব্যবহার করুন:

$ tail -f foobar.log # is "blocking" your shell
(hit Ctrl-Z)
$ bg

আমার ধারণা কাজগুলি আপনার শেলের সাথে আবদ্ধ এবং স্বয়ংক্রিয়ভাবে কাঁটাচামচ হবে না। এর অর্থ আপনি যদি এসএসএইচ এর মাধ্যমে লগ ইন হয়ে থাকেন এবং আপনি সংযোগ বিচ্ছিন্ন করেন তবে শেলটি একটি সিএইচএইচপি গ্রহণ করে, যা চাকরিতেও প্রেরণ করা হবে। এটি আপনার আদেশগুলি বন্ধ / প্রস্থান করবে।

লগ আউট করার পরেও যদি আপনি চাকরিগুলি চালিয়ে ও চালিয়ে যেতে চান তবে আপনি বিল্ট-ইন "অস্বীকার" এর দিকে নজর দিতে চান:

jobs               # fetch job ID in the squre brackets
disown -h %<JOBID> # disown job by using the job ID

অন্য বিকল্পটি হ'ল "নোহপ" (কমান্ড, কোনও ব্যাশ অন্তর্নির্মিত নয়) বা আপনি "স্ক্রিন" বা "টিএমউক্স" এর মতো টার্মিনাল মাল্টিপ্লেক্সার ব্যবহার করেন।


পবিত্র ... দুর্দান্ত উত্তর, ধন্যবাদ একটি টন! আমি আসলে এই কমান্ডগুলি একটি ভয়াবহ কসাইযুক্ত মেকফাইলে সেট আপ করছি, তবে এখানে অনেক তথ্য আছে যা আমি জানতাম না। আপনার বিস্তারিত উত্তরের জন্য আপনাকে অনেক ধন্যবাদ!
AlbertEngelB

BTW আপনি যদি একটি ডিরেক্টরি বা ফাইল "ঘড়ি" করতে চাই, inotify মধ্যে একটি চেহারা এবং কম্যান্ড-লাইন inotify-সরঞ্জাম আছে যদি github.com/rvoicilas/inotify-tools/wiki
ডমিনিক বার্টন

1

এটা চেষ্টা কর:

coffee -c -m -w public/javascript/*.coffee &
stylus views/stylesheets/*.styl -w -m --out public/stylesheets/ &
stylus views/stylesheets/lib/*.styl -w -m --out public/stylesheets/lib/ &

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