linux - যবহ - ডোজ বিরতির সমতুল্য লিনাক্স কি?




লিনাক্সের সুবিধা (6)

আমি এই উপায়ে অনেকগুলি ব্যবহার করি যা খুব ছোট, এবং তারা @ থেমেমডগু এবং @ জিম সমাধানগুলির মতো, তবে সময়ের সাথে সাথে নীরব মোড সহ।

আমি বিশেষত শেষ ক্ষেত্রে ভালোবাসি এবং ব্যবহারকারীর প্রবেশ না করা পর্যন্ত একটি লুপে চালানো অনেক স্ক্রিপ্টে এটি ব্যবহার করুন

কমান্ড

  • সমাধান লিখুন

    read -rsp $'Press enter to continue...\n'
  • পাল্টা সমাধান (সঙ্গে-ডি $ '\ ই')

    read -rsp $'Press escape to continue...\n' -d $'\e'
  • কোন কী সমাধান (সঙ্গে-এন 1)

    read -rsp $'Press any key to continue...\n' -n 1 key
    # echo $key
  • পূর্বনির্ধারিত পছন্দ সঙ্গে প্রশ্ন (-ii $ 'Y' সহ)

    read -rp $'Are you sure (Y/n) : ' -ei $'Y' key;
    # echo $key
  • সময়সীমার সমাধান (সঙ্গে -5)

    read -rsp $'Press any key or wait 5 seconds to continue...\n' -n 1 -t 5;
  • ঘুম বাড়িয়ে উল্লাস

    read -rst 0.5; timeout=$?
    # echo $timeout

ব্যাখ্যা

-আর কাঁচা মোড নির্দিষ্ট করে, যা "\" বা "^" এর মতো মিলিত অক্ষরগুলিকে অনুমতি দেয় না।

-s নীরব মোড নির্দিষ্ট করে, এবং আমরা কীবোর্ড আউটপুট প্রয়োজন হয় না কারণ।

-পি $ ' প্রম্পট ' প্রম্পটটি নির্দিষ্ট করে, যা $ এবং 'এর মধ্যে হতে হবে এবং স্পেস এবং পালানো অক্ষরগুলি ছেড়ে দিতে হবে। সাবধান হোন, পালিয়ে যাওয়া অক্ষরগুলি উপভোগ করার জন্য আপনাকে ডলারের প্রতীক সহ একক উদ্ধৃতি চিহ্নের মধ্যে রাখতে হবে, অন্যথায় আপনি সহজ কোটগুলি ব্যবহার করতে পারেন।

-d $ ' \ e ' ডেলিমিটার চার্টার হিসাবে escappe নির্দিষ্ট করে, তাই বর্তমান এন্ট্রির জন্য চূড়ান্ত চরিত্র হিসাবে, এটি কোনো অক্ষর রাখতে পারে তবে ব্যবহারকারীর টাইপ করা একটি চরিত্র রাখতে সতর্ক থাকুন।

-এন 1 নির্দিষ্ট করে যে এটি শুধুমাত্র একটি অক্ষর প্রয়োজন।

-ই রেডলাইন মোড নির্দিষ্ট করে।

-i $ ' Y ' রেডলাইন মোডে প্রাথমিক পাঠ্য হিসাবে Y উল্লেখ করে।

-T 5 5 সেকেন্ডের সময়সীমা নির্দিষ্ট করে

যদি আপনি ইনপুটটি জানতে চান তবে কীটি সরবরাহ করা হবে, ইন-এন 1 ক্ষেত্রে, টিপ করা হয়েছে এমন কী।

$? শেষ প্রোগ্রামের প্রস্থান কোডটি জানতে পারা, পড়ার জন্য, 142 সময়সীমার ক্ষেত্রে, 0 সঠিক ইনপুট। $ রাখুন? একটি পরিবর্তনশীল যত তাড়াতাড়ি সম্ভব যদি আপনি somes কমান্ডের পরে এটি পরীক্ষা করতে হবে, কারণ সব কমান্ড $ পুনর্লিখন হবে?

আমার কাছে একটি ব্যাশ শেল স্ক্রিপ্ট রয়েছে যা আমি ব্যবহারকারীকে একটি কী টিপ না হওয়া পর্যন্ত কার্যকর করতে বিরত রাখতে চাই। DOS এ, এটি "পজিশন" কমান্ডের সাথে সহজেই সম্পন্ন হয়। আমার লিনাক্সের সমতুল্য আমি কি স্ক্রিপ্টে ব্যবহার করতে পারি?


এই ফাংশন bash এবং zsh উভয় ক্ষেত্রে কাজ করে এবং টার্মিনালে I / O নিশ্চিত করে:

# Prompt for a keypress to continue. Customise prompt with $*
function pause {
  >/dev/tty printf '%s' "${*:-Press any key to continue... }"
  [[ $ZSH_VERSION ]] && read -krs  # Use -u0 to read from STDIN
  [[ $BASH_VERSION ]] && </dev/tty read -rsn1
  printf '\n'
}
export_function pause

এটা আপনার মধ্যে রাখা .{ba,z}shrc মহান বিচারপতি জন্য .{ba,z}shrc !


এটি লিনাক্সের একাধিক স্বাদে আমার জন্য কাজ করেছিল, যেখানে এই অন্য কিছু সমাধানগুলি এখানে ছিল না (এখানে সর্বাধিক জনপ্রিয়গুলি সহ)। আমি এটা খুব বেশি পাঠযোগ্য মনে হয় ...

echo Press enter to continue; read dummy;

একটি পরিবর্তনশীল read একটি যুক্তি হিসাবে সরবরাহ করা প্রয়োজন মনে রাখবেন।


কোনও প্যারামিটার ছাড়াই read হবে যদি আপনি এন্টার চাপুন। আপনি কোন কী চাপলে ডস pause কমান্ড চলতে থাকবে। যদি আপনি এই আচরণ চান তাহলে read –n1 ব্যবহার করুন।


হ্যাঁ read জন্য ব্যবহার করুন - এবং কয়েকটি টুইভ রয়েছে যা cron এবং টার্মিনাল উভয় ক্ষেত্রেই এটি সবচেয়ে উপকারী।

উদাহরণ:

time rsync (options)
read -n 120 -p "Press 'Enter' to continue..." ; echo " "

দী 120 120 মিনিটের পরে পড়া বিবৃতি সময় আউট তাই এটি cron ব্লক না।

টার্মিনালে এটি rsync কমান্ডটি কার্যকর করতে কতক্ষণ সময় লাগবে তা দেখতে 2 মিনিট সময় দেয়।

তারপর পরবর্তী echo তাই পরবর্তী বাশ প্রম্পট পরবর্তী লাইন প্রদর্শিত হবে।

অন্যথা এটি "চলতে থাকুন" এর পর সরাসরি একই লাইনে প্রদর্শিত হবে যখন Enter টিমিনে চাপানো হবে।


read -n1 পোর্টেবল নয়। একই করতে একটি পোর্টেবল উপায় হতে পারে:

(   trap "stty $(stty -g;stty -icanon)" EXIT
    LC_ALL=C dd bs=1 count=1 >/dev/null 2>&1
)   </dev/tty

read ব্যবহার ছাড়াও, শুধুমাত্র একটি প্রেসের জন্য ENTER প্রম্পট চালিয়ে যেতে পারেন যা আপনি করতে পারেন:

sed -n q </dev/tty





shell