ব্যাশ ব্যবহার করে, আমি কীভাবে পিসি স্পিকারকে বীপ তৈরি করতে পারি?
ভালো কিছু echo 'beepsound' > /dev/pcspkrহবে।
ব্যাশ ব্যবহার করে, আমি কীভাবে পিসি স্পিকারকে বীপ তৈরি করতে পারি?
ভালো কিছু echo 'beepsound' > /dev/pcspkrহবে।
উত্তর:
আমি সাধারণত beepঅনেক সিস্টেমে ইনস্টল করা সামান্য ইউটিলিটি ব্যবহার করি । সিস্টেম কণ্ঠ তৈরি করতে এই কমান্ডটি বিভিন্ন পদ্ধতির চেষ্টা করবে।
beepম্যানপেজ থেকে একটি শব্দ তৈরির 3 টি উপায় রয়েছে :
শেল স্ক্রিপ্টে বীপ উত্পাদন করার প্রচলিত পদ্ধতি হ'ল শেল কমান্ডের মাধ্যমে একটি ASCII BEL( \007) অক্ষরকে স্ট্যান্ডার্ড আউটপুট লিখতে হয়
echo -ne '\007'
এটি কেবল তখনই কাজ করে যদি কলিং শেলের মানসম্পন্ন আউটপুট বর্তমানে কোনও ধরণের টার্মিনাল ডিভাইসে পরিচালিত হয়; যদি তা না হয় তবে বীপ কোনও শব্দ উত্পাদন করতে পারে না এবং এমনকি আউটপুটকে নির্দেশিত কোনও ফাইলেই অবাঞ্ছিত দুর্নীতির কারণ হতে পারে।
বীপিং শোনার অন্যান্য উপায় আছে। কিছুটা বেশি নির্ভরযোগ্য পদ্ধতি হ'ল /dev/ttyআপনার বিএল চরিত্রটি সেখানে খোলা এবং প্রেরণ করা। এটি I / O পুনঃনির্দেশের বিরুদ্ধে শক্ত, তবে এখনও এমন ক্ষেত্রে ব্যর্থ হয় যেখানে বীজ তৈরি করতে ইচ্ছুক শেল স্ক্রিপ্টটির নিয়ন্ত্রণকারী টার্মিনাল নেই, উদাহরণস্বরূপ, কারণ এটি এক্স উইন্ডো ম্যানেজার থেকে চালিত হয়েছে।
তৃতীয় পন্থাটি হল আপনার এক্স ডিসপ্লেতে সংযোগ স্থাপন এবং এটি একটি বেল কমান্ড প্রেরণ। এটি কোনও ইউনিক্স টার্মিনাল ডিভাইসের উপর নির্ভর করে না, তবে এর জন্য অবশ্যই একটি এক্স ডিসপ্লে প্রয়োজন।
beep এই 3 পদ্ধতি সহজভাবে চেষ্টা করবে।
beepকমান্ডের হোমপৃষ্ঠাটি হ'ল: johnah.com/beep উবুন্টু / ডেবিয়ান অন, আপনি এটি ইনস্টল করতে পারেন apt-get install beep।
pcspkrমডিউলটি আনলোড করুন , লোড করুন snd-pcsp, এবং আপনার কাছে এখন একটি আলসা সাউন্ডকার্ড রয়েছে যা আপনার অভ্যন্তরীণ স্পিকারকে প্রকৃতপক্ষে ডিজিটাল শব্দটি খাওয়ানোর জন্য পুরানো-স্কুল কৌশলগুলি ব্যবহার করে। এটি পাইজোইলেক্ট্রিক অভ্যন্তরীণ স্পিকারগুলির সাথে কৃপণ ফলাফল দেয়, তবে শাস্ত্রীয় অভ্যন্তরীণ স্পিকারগুলিতে, মানটি এটির জন্য বেশ ভাল। এইভাবে, আপনি আপনার বীপ শব্দের জন্য আরও সৃজনশীল পেতে পারেন;)
pcspkrএবং snd-pcspমডিউলগুলি, প্যাকেজ নয়। এগুলি হেরফের করতে modprobe/ modprobe -r/ lsmodব্যবহার করুন। আপনার তথ্যের জন্য, তারা linux-image-somethingপ্যাকেজে রয়েছে, যা ইতিমধ্যে ইনস্টল করা আছে (অন্যথায় আপনার কোনও লিনাক্স কার্নেল নেই)।
modprobe snd-pcspবীপ এখন কাজ করছে!
কেবল প্রতিধ্বনিত হয় \aবা \07আমার পক্ষে কাজ করে।
$ echo -e "\a"
এটির জন্য সম্ভবত pcspkrকার্নেল মডিউলটি লোড করা দরকার। আমি কেবল এটি আরএইচইএলে পরীক্ষা করেছি, তাই ওয়াইএমএমভি।
ওয়ারেন মন্তব্যগুলিতে যেমন উল্লেখ করেছেন, এসএসএইচ এর মাধ্যমে দূরবর্তীভাবে লগ ইন করার সময় এটি কাজ করতে পারে না। একটি তাত্ক্ষণিকভাবে কাজটি হ'ল টিটিওয়াই ডিভাইসের যে কোনও একটিতে আউটপুট পুনঃনির্দেশ করা (আদর্শভাবে এটি অব্যবহৃত)। উদাহরণ:
$ echo -en "\a" > /dev/tty5
sudo modprobe pcspkrপক্ষে ভিটি-র অধীনে বীপগুলি সক্ষম করার জন্য যথেষ্ট ছিল, হয় printf "\a"বা beepইউটিলিটি দ্বারা।
Ubuntu 16.04.1 LTS
দ্রষ্টব্য: এই সমাধানটি মাদারবোর্ড নয়, স্পিকারের কাছ থেকে বিপগুলি বের করে ।
ALSA স্পিকার-পরীক্ষার সাথে আসে , একটি কমান্ড-লাইন স্পিকার টেস্ট টোন জেনারেটর, যা বীপ তৈরি করতে ব্যবহার করা যেতে পারে:
$ speaker-test -t sine -f 1000 -l 1
দেখুন এই আর্চ লিনাক্স ফোরাম থ্রেড ।
তবে, বীপের সময়কাল নির্বিচারে হবে, তবে নিম্নলিখিত হিসাবে এটি নিয়ন্ত্রণ করা যেতে পারে:
$ ( speaker-test -t sine -f 1000 )& pid=$! ; sleep 0.1s ; kill -9 $pid
আমরা এটিকে আরও একধাপ এগিয়ে নিয়ে যেতে পারি এবং এই ফাংশনটির সাথে একটি বীপ আউটপুট করতে পারি:
_alarm() {
( \speaker-test --frequency $1 --test sine )&
pid=$!
\sleep 0.${2}s
\kill -9 $pid
}
যা ফ্রিকোয়েন্সি এবং সময়কাল আর্গুমেন্ট সহ বলা হয়:
$ _alarm 400 200
এটি মাথায় রেখে, এটির সাথে সহজ সংগীত তৈরি করা সম্ভব speaker-test। দেখুন এই শেল স্ক্রিপ্ট ।
timeout ${2} speaker-test --frequency ${1} --test sine
speaker-test -t sine -f 1000 -l 1 & sleep .2 && kill -9 $! নেই , ঠিক একই জিনিসটি করে। যাইহোক, @ user569825 এর পদ্ধতিটি দুর্দান্ত।
tput bel
কারণ terminfo সংজ্ঞায়িত belহিসাবে
Variable Cap- TCap Description
String name Code
bell bel bl audible signal
(bell) (P)
soxইনস্টল করা থাকলে সাউন্ডকার্ড এবং না থাকলে পিসি স্পিকার ব্যবহার করার জন্য :
$ play -q -n synth 0.1 sin 880 || echo -e "\a"
sox বেশিরভাগ ডিস্ট্রোসের জন্য উপলব্ধ।
thenব্লকের মধ্যে watchএটি ব্যবহার করে শেষ করেছি । এমনকি আমার হেডফোনগুলি চালিয়ে যেতে দেয়। এটি আমার জন্য খুব দরকারী ছিল।
sudo -u USER play...
playব্যবহারকারী হিসাবে পলসৌদিও ব্যবহার করে। আমার ধারণা এটি সিস্টেম কনফিগারেশনের উপর নির্ভর করে।
কিছু ডিস্ট্রোদের এটি অর্জনের জন্য কমান্ড-লাইন ইউটিলিটি রয়েছে। আপনি কী ডিসট্রোতে আছেন তা অনুসন্ধান করতে পারেন বা অনুসন্ধান করতে পারেন (উদাহরণস্বরূপ emerge -s beepভদ্রুতে)।
"উপলব্ধ" ব্যবহারের বাইরে গিয়ে আপনি পার্ল স্ক্রিপ্টও তৈরি করতে পারেন যা বীপকে বের করে দেয়, আপনাকে যা করতে হবে তা হ'ল:
<SomeCodeBefore>
print "\007";
<SomeCodeAfter>
যদি আপনি 'বীপ' পাওয়া শেষ করেন তবে নিম্নলিখিতগুলি চেষ্টা করে দেখুন:
#! /bin/sh
beep -f 500 -l 700
beep -f 480 -l 400
beep -f 470 -l 250
beep -f 530 -l 300 -D 100
beep -f 500 -l 300 -D 100
beep -f 500 -l 300
beep -f 400 -l 600
beep -f 300 -l 500
beep -f 350 -l 700
beep -f 250 -l 600
echo -e "\007"পার্লের পরিবর্তে print "\007বাশে কাজ করবে ?
printf '\007'পরিবর্তে এটি ব্যবহারে আরও পোর্টেবল হবে echo।
" আপনার পিসির একটি" স্পিকার "থাকলেই বিপ কাজ করে Many অনেক আধুনিক ল্যাপটপ / ছোট ডিভাইসগুলির একটি নেই" " - Tredegar ।
পরিবর্তে একটি শব্দ বাজানোর চেষ্টা করুন:
$ play xxxxx.wav
আমার পক্ষে কাজ করেছেন, যখন সমস্ত ব্যর্থ হয়েছিল।
চেষ্টা
প্রতিধ্বনি -n Ctrl+ V Ctrl+G
খারাপ দিকটি হ'ল এটি কেবল তখনই কাজ করবে যখন আউটপুট ডিভাইসটি টার্মিনাল হয়, সুতরাং এটি কোনও ক্রোন কাজের অভ্যন্তরে কাজ করতে পারে না, উদাহরণস্বরূপ। (তবে আপনি যদি রুট হন তবে আপনি /dev/consoleতত্ক্ষণাত বীপিংয়ের জন্য পুনর্নির্দেশ করতে সক্ষম হতে পারেন ))
লিনাক্সে, জাতীয় সরঞ্জাম beepপ্রদত্ত শব্দ নির্গত করতে কনসোল ডিভাইসে একটি আইওএসটিএল ব্যবহার করতে পারে। আরও সুনির্দিষ্ট হওয়ার জন্য, আইওসিটিএল beepব্যবহার করবে KIOCSOUND, তবে একটি KDMKTONEআইওসিটিএলও রয়েছে যা শব্দ উত্পন্ন করতে ব্যবহৃত হতে পারে।
আমি এটি বুঝতে পেরে, পূর্ববর্তী একটি শব্দ শুরু করে যা এটি স্পষ্টভাবে বাতিল না হওয়া অবধি স্থায়ী হয়, অন্যদিকেটি পূর্ব নির্ধারিত সময়ের একটি বীপ তৈরি করবে create বিশদটির জন্য console_ioctl(4) ম্যান পৃষ্ঠাটি দেখুন।
সুতরাং আপনি যদি যা beepকরেন তাতে সন্তুষ্ট হন, তবে এই আইওটিটিএলগুলি সরাসরি অ্যাক্সেস করার জন্য আপনি কয়েকটি লাইন কোড লিখতে পারেন। ধরে নিলাম আপনার কাছে সম্পূর্ণ অ্যাক্সেস রয়েছে /dev/console, যার জন্য মূলের সুবিধার জন্য ভাল প্রয়োজন।
একটি টার্মিনালে, Ctrl+ Gএবং তারপরে টিপুনEnter