শেল স্ক্রিপ্টে বীপ কাজ করছে না?


87

আমি শেল স্ক্রিপ্টে একটি বীপ শব্দ ব্যবহার করতে চাই। দুর্ভাগ্যক্রমে গুগলের মাধ্যমে আমি যে পদ্ধতিগুলি পেয়েছি সেগুলির কোনওটিই আমার পক্ষে কাজ করে না।

আমি চেষ্টা করেছিলাম

echo -e '\a'

echo -ne '\007'

এবং কমান্ডটি beepআমি এটিটি মাধ্যমে ইনস্টল করার পরে।

এর কারণ কী হতে পারে?


: এই বাগ রিপোর্ট দেখুন bugs.launchpad.net/ubuntu/+source/unity/+bug/769314
Flimm

উত্তর:


93

প্রথমে রান করুন sudo modprobe pcspkrএবং তারপরে beepকাজ করা উচিত।

এটির কারণটি হ'ল কারণ ডিফল্টরূপে উবুন্টু আর হার্ডড্রোইভার ড্রাইভারকে লোড করে না যা বিপ তৈরি করে।

যদি এটি আপনার জন্য কাজ করে তবে পিসিএসপিকিআর লোডিং স্থায়ীভাবে /etc/modprobe.d/blacklist.confফাইল সম্পাদনা করতে সক্ষম করে ( gksudo geditসম্ভবত ব্যবহার করে ) এবং মন্তব্য আউট লাইন blacklist pcspkrযাতে এটি দেখতে এরকম দেখায়:

# কুরুচিপূর্ণ এবং তীব্র শব্দ, প্রত্যেকের স্নায়ু পেয়ে; এটি একটি দ্বারা করা উচিত
# চমৎকার পালসওদিও বিং (উবুন্টু: # 77010)
# ব্ল্যাকলিস্ট পিসিএসপি.কে.

3
যদি আমি মন্তব্য blacklist pcspkrকরি তবে modprobe -r pcspkr && modprobe pcspkrএটি কাজ করতে আমাকে করতে হবে । এছাড়াও কাজের জন্য বীপ পাওয়া শ্রবণযোগ্য বেলটি কাজ করার অনুরূপ নয় এবং সুতরাং askubuntu.com/questions/22168/how-do-i-enable-theterter- बेलটি এখনও খোলা থাকা উচিত।
daithib8

3
উবুন্টু 14 এ এটি আমার পক্ষে কাজ করে না
সেরিন

90

পিসিএসপিক্রার বিপের অনুরাগী না হয়ে, আমি ইনস্টলড পালসওডিও সার্ভারের পাপলে কমান্ডের সাহায্যে সিস্টেমের একটি শব্দ থেকে একটি বীপ ব্যবহার করি।

প্রথমে আপনার পছন্দ মতো একটি শব্দ সন্ধান করুন (উদাহরণস্বরূপ কয়েকটি উপলব্ধের জন্য আপনি ব্রাউজ / usr / শেয়ার / শব্দগুলি ব্রাউজ করতে পারেন) এবং এটিতে একটি রেফারেন্স তৈরি করুন

export BEEP=/usr/share/sounds/ubuntu/ringtones/Harmonics.ogg

তারপরে এটি কমান্ড হিসাবে উপলব্ধ করুন

alias beep='paplay $BEEP'

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

find . | grep treasure ; beep

1
যখন কেউ রান করে তখন আপনি কি এই শব্দটি বাজানোর জন্য এটি পেতে পারেনecho -e '\a'
ফ্লিম

আপনার হয়ত কিছুক্ষণের জন্য কিছু পঠন কমান্ডের প্রয়োজন হতে পারে লুপে বা এমন কোনও লাইব্রেরি যা কীস্ট্রোকগুলি পর্যবেক্ষণ করতে পারে।
ইউভিলিও

2
এটি একটি দুর্দান্ত সমাধান! run-my-long-test-suite.sh; beepসিস্টেম প্রস্তুত না হওয়া পর্যন্ত আমি এখন স্ট্যাকওভারফ্লোটি করতে এবং পড়তে পারি ।
জামেস্ক

3
নিস! আমি এখন ব্যবহার করি export BEEP=/usr/share/sounds/ubuntu/stereo/dialog-information.oggএবং alias beep='paplay $BEEP --volume=32768'এটি আমার পক্ষে ভাল works (নোট করুন যে আপনি beepওরফে beep --volume=15000দিয়ে ভলিউমটিকে ওভাররাইড করতে পারেন , উদাহরণস্বরূপ -12 ডিবি এর খণ্ডে খেলে))
বাম দিকের বাইরে

3
এই ওগ ফাইলগুলি খোলার ফলে অভ্যন্তরীণ পিসি স্পিকার বীপের চেয়ে বৃহত্তরতার বিলম্ব অর্ডার আসতে পারে। কেবল এটিই নয় যে বিলম্বকে অত্যন্ত পরিবর্তনশীল বলে মনে হয়। আমি স্বীকার করি যে বেশিরভাগ লোকের যত্ন নেই তবে আপনার যখন রিয়েল টাইম বা রিয়েল টাইম সাড়া দেওয়ার দরকার হবে তখন পিসি স্পিকার সম্ভবত শ্রবণযোগ্য প্রতিক্রিয়ার জন্য সেরা বিকল্প।
H2ONaCl

21

এই সমস্যাটি অবিরামভাবে সমাধান করতে:

  • চালান gconf-editorএবং যদি desktop | gnome | peripherals | keyboard | bell_modeসেটিং উপস্থিত তারপর থেকে এটি পরিবর্তন offকরতেon
  • চালান dconf-editorএবং যদি org | gnome | settings-daemon | peripherals | keyboard | bell-modeসেটিং উপস্থিত তারপর থেকে এটি পরিবর্তন offকরতেon
  • যোগ pactl upload-sample /usr/share/sounds/gnome/default/alerts/glass.ogg bell.oggফাইলে ~/.xprofile(যদি আপনি প্রয়োজন gnome-control-center-dataজন্য glass.ogg)
  • যোগ [ "$DISPLAY" ] && xset b 100ফাইলে~/.bashrc

এই সমাধানটি সক্রিয় করার সহজ উপায় হ'ল রিবুট করা।

ততক্ষণে, ইতিমধ্যে খোলা টার্মিনাল উইন্ডোর জন্য এই সমাধানটি অবিলম্বে বাস্তবায়নের জন্য, pactlকমান্ডটি পরিচালনা করুন এবং xsetপ্রশ্নটিতে টার্মিনাল উইন্ডোতে কমান্ডটি চালান ।


আমি pactl upload-sampleশেল স্ক্রিপ্টে কমান্ডটি রেখেছি , তবে আপনার পদ্ধতিটি আরও সুসংহত। ধন্যবাদ!
JoBu1324

আপনি যদি pactlকমান্ডটি ~/.xprofileএতে রাখেন তবে জিইউআই অধিবেশন শুরুর পরে কার্যকর করা হবে।
jdthood

dconf-editorসংস্করণ bell-modeসেটিং হবে বলে মনে হয় org.gnome.settings-daemon.peripherals.keyboard
lgarzo

@ লেগারজো: টিপটির জন্য ধন্যবাদ আমি উত্তর আপডেট করব।
jdthood

1
@ Hibou57: নিশ্চিত আপনি প্যাকেজ আছে কি না নিশ্চিত ধারণকারী glass.oggইনস্টল
জানুস Troelsen

21

যেহেতু এটি গুগলে খুব হাই রেট করা প্রশ্ন, তাই আমি কনসোল এবং এক্স 11 উভয় ক্ষেত্রে বীপকে পুনরায় সক্ষম করতে যে পদক্ষেপগুলি করেছি তা যুক্ত করব:


লিনাক্স কনসোলের জন্য ( CTRL+ ALT+ F1... F6):

এটি ডিফল্টরূপে কেন কাজ করে না

ইতিমধ্যে উত্তর হিসাবে , pcspkrপিসি স্পিকার জন্য কার্নেল ড্রাইভার উবুন্টু কালো তালিকাভুক্ত করা হয়।

রিবুট হওয়া পর্যন্ত অস্থায়ীভাবে সক্ষম করুন:

sudo modprobe pcspkr

বুটে স্বয়ংক্রিয়ভাবে সক্ষম করুন:

sudo nano /etc/modprobe.d/blacklist.conf

(মুছে ফেলা বা pcspkrএটির মাধ্যমে মন্তব্য লাইন মন্তব্য #)


এক্স 11 টার্মিনালের জন্য (যেমন ডিফল্ট gnome-terminal)

এটি ডিফল্টরূপে কেন কাজ করে না

এক্স এর অধীনে, ইউনিটি, কে, কে, জিনোম শেল ব্যবহার করার সময়, বীপ ইভেন্টগুলি পালস অডিও দ্বারা ক্যাপচার করা হয় ধন্যবাদ module-x11-bell, যা ডিফল্টরূপে লোড হয় /usr/bin/start-pulseaudio-x11। এবং শব্দটির নমুনা পালস অডিও বীপে খেলেন bell.ogg, এটি ডিফল্টরূপে ফাঁকা। অতিরিক্তভাবে, বেলের ভলিউম নিঃশব্দ করা যেতে পারে।

অস্থায়ীভাবে বর্তমান সেশনের জন্য সক্ষম করতে,

xset b 100  # perhaps not needed, on my system it was 40 by default
pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg

অন্যান্য উপযুক্ত নমুনাগুলি রয়েছে যা আপনি চেষ্টা করতে পারেন /usr/share/sounds, উদাহরণস্বরূপ এগুলি পরীক্ষা করুন/usr/share/sounds/gnome/default/alerts/

নোট করুন যে beepপ্রোগ্রামটি সত্যই প্রয়োজনীয় নয়। তবে ইনস্টল করা থাকলে এটি পিসি স্পিকার ব্যবহার করে। এক্স এর অধীনে বুজারটি সক্ষম করার জন্য এটি কেবলমাত্র একমাত্র উপায় ছিল:

sudo apt-get install beep

বুটে স্বয়ংক্রিয়ভাবে সক্ষম করতে, কেবলমাত্র উপরের লাইনগুলি আপনার ~/.profileবা সিস্টেম-ওয়াইড এ যুক্ত করুন/etc/profile


এটি পরীক্ষা করার জন্য:

printf '\a'

হুইসেল!

beep

Buzz নেই!


স্বয়ংক্রিয়ভাবে আপনি আসলে আছে বুট একটি পিসি স্পিকার হুইসেল সক্রিয় করার জন্য মন্তব্য বললেন লাইন /etc/modprobe.d/blacklist.conf এটা uncomment না (আপনি, কালো তালিকাভুক্তি অক্ষম করতে চান না প্রায় অন্যান্য উপায়)।
z33k

1
উভয় সমাধান উবুন্টু 16.04 এ কাজ করে দ্রষ্টব্য: pcspkrএবং bell.oggএটি স্বাধীন পদ্ধতির। beepবিভিন্ন পদ্ধতির সাহায্যে বীপ দেওয়ার চেষ্টা করে যেমন ioctl(console_fd, KIOCSOUND, period)ব্যবহার করুন pcspkr(মাদারবোর্ডে পিসি স্পিকার থেকে শব্দটি আসছে) যখন- printf '\a'ভিত্তিক পদ্ধতিটি কেবল এটি ব্যবহার না করেই চলতে পারে bell.ogg(শব্দটি সাধারণ স্পিকারের দ্বারা)। দ্বিতীয় পদ্ধতিটি পলসৌদিও পরিষেবা শুরুxset b on
jfs

pactl upload-sample ...আমার জন্য সুবর্ণ ছিল। আবার নমুনা লোডিং স্থায়ীভাবে কনফিগার করার উপায় কী?
ulidtko

@ জুলিদকো: কেবল আপনার লাইনে লাইনগুলি যুক্ত করুন ~/.profile, বা সিস্টেম-প্রশস্ত/etc/profile
MestreLion

পছন্দ করুন load-sample bell.ogg /usr/share/sounds/ubuntu/stereo/bell.oggমধ্যে /etc/pulseaudio/default.pa
ulidtko

15

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

আমি খুঁজে পাওয়া একমাত্র সমাধান ছিল sudo apt-get install soxএবং ছিল

play -n synth <duration in seconds> sine <freq in Hz> vol <volume (0-1)>

যেমন

 play -n synth 0.1 sine 880 vol 0.5

আমার সমাধানটি চেষ্টা করে দেখুন - আমি এটি জানতে আগ্রহী যে এটি আপনার পক্ষে কাজ করে কিনা!
JoBu1324

আপনি এর জন্যও স্পিকার-পরীক্ষা ব্যবহার করতে পারেন
জানুস ট্রয়লসন

1
এছাড়াও আপনি একটি চমৎকার গিটার প্লাক স্বন হতে পারে play -q -n synth 2 pluck C5। সি 5 নোট।
পাবলো এ

3

অবশেষে আমি একটি সমাধান পেয়েছি, যার alsamixerজন্য পিসি বিপ বিকল্পের প্রয়োজন নেই। আমি মনে করি আমার সমস্ত পরিবর্তনগুলি মনে আছে:

নিচে নিম্নরূপ /etc/pulse/default.pa:

load-sample-lazy x11-bell /usr/share/sounds/ubuntu/stereo/bell.ogg
load-module module-x11-bell sample=bell-windowing-system

এই বাগ প্রতি চালান, চালানpactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg


এটি চেষ্টা করে, প্যাকটেল আমাকে দিয়েছিল Connection failure: Connection refused pa_context_connect() failed: Connection refused
YodaDaCoda

সম্ভবত এই থ্রেডটি সহায়তা করবে - যদি আপনি কখনও ডাল হিসাবে দেবেন না run
জোবু 1324

আসলে আমার একটা আলাদা সমস্যা হচ্ছে পালসোদিও ছুড়ে ফেলেছে Failed to open module "module-esound-protocol-unix": file not found। আমি 13.04 চালাচ্ছি বলে সম্ভবত এখানে আলোচনা করার মতো নয়, যদিও আমি আপনার সমাধানটি যাচাই করতে সক্ষম হতে চাই।
YodaDaCoda

দুর্দান্ত, 15.04 এর জন্য কিছুটা আলাদা লাইন।
ভিআরআর

2

আপনার যদি কম্পিউটারে প্রকৃত স্পিকার থাকে এবং আপনি বীপ না পান তবে সম্ভবত আপনি কমপিজ ব্যবহার করছেন। কমপিজ বিপগুলি ধরা এবং সেগুলি খেলার সময় পালসৌদিওর উপর নির্ভর করে met যদি এটি মেটাাসিটির সাথে কাজ করে এবং কমিজ না করে তবে এটিই আপনার সমস্যা otherwise


2

: যতদুর আমি বলতে পারেন, এই একটি বাগ সংশোধন করা হয় সিস্টেম বিপ এটা ঠিক করার বীরত্বের প্রয়াস সত্ত্বেও Karmic ভাঙ্গা


3
"ডিফল্টরূপে সক্ষম নয়" এর অর্থ ভাঙ্গা নয়, এবং কোনও "বীরত্বপূর্ণ প্রচেষ্টা" দরকার নেই: স্রেফ modprobe pcsprk(কনসোলে) বা pactl upload-sample ...এক্স 11-এ এবং বিরক্তিকর বীপ ফিরে এসেছে :)
ম্যাসট্রেলিয়ন

2

" আপনার পিসির 'স্পিকার' থাকলেই বিপ কাজ করে Many অনেক আধুনিক ল্যাপটপ / ছোট ডিভাইসগুলির একটি নেই"।

এর মতো শব্দ বাজানোর চেষ্টা করুন: play xxxxx.wav আমি একটি দুর্দান্ত ওয়াভ ফাইল পেয়েছি যা মনে হচ্ছে ছোট এবং মিষ্টি বলে মনে হচ্ছে তবে আপনি নিজের পছন্দটিও বেছে নিতে পারেন। অন্য সব ব্যর্থ হলে আমার পক্ষে কাজ করে।


ধন্যবাদ: Tredegar & hk_centos


1

একটি বিকল্প পদ্ধতির - আপনার এক্সটার্ম / কনসোলটিকে "ভিজ্যুয়াল বেল" এ সেট করুন যাতে এটি বীপ হবে, উইন্ডোটি স্বল্প সময়ের জন্য কেবল তার রঙগুলিকে উল্টে দেয়।

কমান্ড শেষ হয়ে গেলে আমার দৃষ্টি আকর্ষণ করার জন্য আমার কাছে বীপ নামে একটি বাশ ফাংশন রয়েছে।

beep ()  { while true; do  echo -en '\a'; sleep 1; done }

এবং এটি এভাবে ব্যবহার করা হয়

longrun-command ; beep

0

ভবিষ্যতে লোকটির জন্য এটি খুঁজছেন তবে এটি দেরীতে হতে পারে:

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