ডস এর বিরতি আদেশের সমতুল্য কি?


13

চালিয়ে যাওয়ার আগে সতর্কতা দেখানোর জন্য আমার শেল স্ক্রিপ্টে একটি বিরতি দরকার। উদাহরণস্বরূপ, ডসটিতে এটি এরকম হয়:

doit.bat:

[...]
echo 'Are you sure? Press Ctrl-C to abort, enter to continue.'
pause
[...]

আমি কীভাবে বাশতে এটি করতে পারি? এই মুহুর্তের জন্য একটি ঘুম কমান্ডটি কৌশলটি মনে করে এবং এটি যথেষ্ট সহজ তবে ঠিক এই ধারণাটি নয়:

doit.sh

[...]
echo 'Are you sure? Press Ctrl-C to abort.'
sleep 3
[...]

উত্তর:


10

লাইন বরাবর কিছু

echo -n "prompt"  #'-n' means do not add \n to end of string
read              # No arg means dump next line of input

14
বাশে, এটি সংক্ষিপ্ত করা যেতে পারে read -p "prompt"। শেল বিল্ট-ইনগুলি সম্পর্কিত আরও বিবরণ helpকমান্ডের সাহায্যে পুনরুদ্ধার করা যেতে পারে , যেমন help read
লেকেনস্টেইন

@ লেকেনস্টেইন - এটি যদিও পিছনের নতুন লাইন ছাড়া।
ম্যাট এইচ

মত @MattH শুধু echo -nএবং printf। আপনি এন্টার টিপলে আপনি একটি নতুন লাইন পাবেন।
লেকেনস্টেইন

যা উবুন্টু 12.04 এর জন্য কাজ করে না - পড়ার পক্ষে যুক্তিযুক্ত প্রয়োজন
ses

@ses 12.04.4 এ ব্যবহার করে bashএমন কোনও প্রয়োজন নেই যা পড়ার একটি যুক্তি থাকতে পারে। ব্যবহার sh(যা প্রায়ই এমন কিছুকে ডাকে, bashযে shসামঞ্জস্যপূর্ণ মোড) readএকটি আর্গুমেন্ট প্রয়োজন। আপনি যদি আপনার স্ক্রিপ্টটি দিয়ে শুরু করেন #!/bin/shতবে পরবর্তী আচরণটি দেখতে পাবেন
হাকল

2

read -p "Press any key to continue or CTRL-C to abort"আমার স্ক্রিপ্টগুলিতে 14.04 এর নিচে জরিমানা কাজ করে। @ লেকেনস্টেইন উপরের মন্তব্যে যেমন বলেছে যে 12.04.4 থেকে এটি মনে হচ্ছে এটি ঘটেছে। 'সহায়তা পড়ুন' পৃষ্ঠাতে বলা হয়েছে:

-p prompt   output the string PROMPT without a trailing newline before
            attempting to read

1

আমার এটির প্রিয় ব্যবহারটি একটি ডিফল্ট সময়সীমা সেট করা হয়, যাতে স্ক্রিপ্টটিও বিনা নজরে চালাতে পারে:

echo "Press any key to continue..."
read -n1 -t5 any_key

কোথায়:

  • -n1 পাঠকদের কোনও একক চরিত্র গ্রহণ করতে বলে
  • -t5 ইনপুটটির জন্য এটি সর্বোচ্চ 5 সেকেন্ড অপেক্ষা করতে বলে

আমি প্রায় CentOS এর অধীনে বাশের সাথে প্রায় একচেটিয়াভাবে কাজ করি, তাই আমি অন্যান্য লিনাক্স ভেরিয়েন্টগুলিতে এই কাজটির জন্য কোনও প্রমাণ দিতে পারি না, তবে এটি যেহেতু এটি বাশ, তাই আমি এটির কাজ করার প্রত্যাশা করব। আমি যদি নিশ্চিতভাবে জানতে আগ্রহী যে তা যদি হয়! :)


0

স্ক্রিপ্টটি থামানোর সহজ অপেক্ষায় হ'ল স্ক্রিপ্ট থেকে কল kill -STOP $$করা: বিরতি দেওয়ার পরে স্ক্রিপ্টটি -Cont সিগন্যাল পাওয়ার পরে তার কাজ চালিয়ে যাবে।

#!/bin/bash
echo "$0 stopping now"
kill -STOP $$
echo "$0 continues its work"

CONTস্ক্রিপ্টে কেউ কীভাবে সংকেত পাঠায় ?
ডেভিড ফোস্টার

-2
echo "press enter to continue"
read unusedVariable
echo "running these 3 lines in .sh file, this echo will never be seen, unless you have a really slow computer"

একটি .sh ফাইলে এই 3 লাইন রাখুন এবং এটি চালান


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