সেকেন্ডের পরে কমান্ড কার্যকর করুন (ঘুম ছাড়া)


15

ঘুম না করে এক্স সেকেন্ড পরে কীভাবে কমান্ড চালাতে পারি। অথবা ঘুমের সাথে কিন্তু শেল ছাড়াই কেবল সেই আদেশের প্রতিক্রিয়াটির জন্য অপেক্ষা করুন?

আমি এটি ব্যবহার করেছি কিন্তু এটি কার্যকর হয়নি

sleep 5 ; ls > a.txt

আমার এটি পটভূমিতে চালানো দরকার। আমি এটি ls5 মিনিট পরে চালানোর চেষ্টা করি এমন স্ক্রিপ্টে এটি চালিত না করার চেষ্টা করি এবং শেলটি কেবল ঘুমের শেষের জন্য অপেক্ষা করে না


খোল ছাড়া কাজ করে না কেন? আপনি কোন ত্রুটি পান? আপনি কি পুরো পথটি পার করছেন? আপনি কি জানেন কোন অংশটি পার্স করে ;?
হেনেস

এইভাবে শেলটি 5 সেকেন্ড অবরুদ্ধ হবে এবং তারপরে কমান্ডটি চালাবে,, শেলটি আটকাতে হবে আমার এটির দরকার নেই।
মার্টিন

তারপরে আপনার এটি হয় ব্যাকগ্রাউন্ডে কোনও স্ক্রিপ্টে বা একটি উপ-শেলের মধ্যে শুরু করা দরকার।
হেনেস

উত্তর:


34

হেনেস যা বলেছিলেন তা লেখার আরও সংক্ষিপ্ত উপায়

(sleep 5; echo foo) & 

বিকল্পভাবে, যদি আপনার কয়েক সেকেন্ডের বেশি প্রয়োজন হয় তবে আপনি ব্যবহার করতে পারেন at। কমান্ড দেওয়ার তিনটি উপায় রয়েছে at:

  1. পাইপ:

    $ echo "ls > a.txt" | at now + 1 min
    warning: commands will be executed using /bin/sh
    job 3 at Thu Apr  4 20:16:00 2013
    
  2. আপনি যে পাঠ্য ফাইলটিতে চালাতে চান সেই কমান্ডটি সংরক্ষণ করুন এবং তারপরে সেই ফাইলটি পাস করুন at:

    $ echo "ls > a.txt" > cmd.txt
    $ at now + 1 min < cmd.txt
    warning: commands will be executed using /bin/sh
    job 3 at Thu Apr  4 20:16:00 2013
    
  3. আপনি atSTDIN থেকে কমান্ডগুলিও পাস করতে পারেন :

    $ at now + 1 min
    warning: commands will be executed using /bin/sh
    at> ls
    

    তারপরে, শেল CtrlDথেকে প্রস্থান করতে টিপুন atlsকমান্ড এক মিনিট চালানোর করা হবে না।

আপনি [[CC]YY]MMDDhhmm[.ss]যেমন হিসাবে ফর্ম্যাটে খুব সুনির্দিষ্ট সময় দিতে পারেন

$ at -t 201412182134.12 < script.sh

এটি script.sh18 ডিসেম্বর 2014-এ 21:34 এবং 12 সেকেন্ডে স্ক্রিপ্টটি চালাবে So সুতরাং, তত্ত্ব হিসাবে, আপনি atভবিষ্যতে পাঁচ সেকেন্ড কিছু চালাতে ব্যবহার করতে পারেন । যাইহোক, এটি একটি ফ্লাইকে সোয়াট করার জন্য ট্যাঙ্ক ব্যবহার করার মতো দয়ালু এবং হেনসের পরামর্শটি আরও ভাল।


আমি জবাবদিহি করতে $(sleep 5; echo foo) &থাকলাম আমি কেন নিশ্চিত মনে করলাম আমার কেন দরকার হয়েছিল - তার সামনে, তবে আমার বাক্য গঠনটি ভুল করে আমি কেবল দীর্ঘতর (এবং আরও বোধগম্য) সংস্করণটি পোস্ট করেছি। (কমান্ড_ফর্ম_ইন_ইউ_শেল) যদিও কম।
হেনেস

@ হেনেস এবং আমি নির্মমভাবে আপনার খুব ভাল ধারণাটি ছিন্ন করেছিলাম (যা আমি উন্নীত করেছি)। আমি যা করেছি তা এটি সংক্ষিপ্ত হওয়ার জন্য পুনরায় ফর্ম্যাট করা হয়েছিল, প্রকৃত চিন্তা বিটের সমস্ত ক্রেডিট আপনার :)
টেরডন

atসেকেন্ডে বিলম্বের সাথে ব্যবহার করার কোনও উপায় আছে কি ?
তহবিল মনিকার লসুইট

পুনঃটুইট একটি নির্দিষ্ট সময় ব্যবহার করুন (উদাহরণস্বরূপ at 21:43) যদি এটি আপনি চান তবে, বা কেবল 4 সেকেন্ড পরে sleep 4 && commandচালানোর মতো সাধারণ কিছু করুন command
টার্ডন

4

আপনি পটভূমিতে একটি শেল বা স্ক্রিপ্ট শুরু করে এটি চারপাশে কাজ করতে পারেন।

উদাহরণ:

/ বিন / এস-সি "ঘুম 5; ইকো ফু" &
[1] 63791
> এখানে সক্রিয় শেল প্রম্পট

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