Kabuk betiğinde bip çalışmıyor mu?


87

Bir kabuk komut dosyasında bir bip sesi kullanmak istiyorum. Maalesef Google üzerinden bulduğum yöntemlerin hiçbiri benim için çalışmıyor.

denedim

echo -e '\a'

echo -ne '\007'

ve beepapt ile kurduktan sonraki komut .

Sebebi ne olabilir?



Yanıtlar:


93

Önce koş sudo modprobe pcspkr, sonra beepçalışmalı.

Bunun nedeni, varsayılan olarak Ubuntu’nun artık bip üreten donanım sürücüsünü yüklememesidir.

Eğer bu sizin için çalışıyorsa, pcpkr'ın yüklenmesini etkinleştirmek için /etc/modprobe.d/blacklist.confdosyayı kalıcı olarak düzenleyin ( gksudo geditbelki de kullanarak ) ve şöyle blacklist pcspkrgöründüğünü söyleyen satırı yorumlayın :

# Çirkin ve yüksek ses, herkesin sinirlerine bürünmek; bu bir tarafından yapılmalıdır
# güzel pulseaudio bing (Ubuntu: # 77010)
# blacklist pcspkr

3
Eğer yorum blacklist pcspkryaparsam modprobe -r pcspkr && modprobe pcspkrçalışması için bunu yapmak zorundayım. Ayrıca , sesli uyarı zilinin çalışmaya başlamasıyla aynı şey değildir ve bu nedenle askubuntu.com/questions/22168/how-do-i-enable-the-terminal-bell hala açık olmalıdır.
daithib8

3
Bu benim için Ubuntu 14'te işe yaramıyor.
Cerin

90

Pcpkr bip hayranı olmamak, yüklü pulseaudio sunucusunun paplay komutuyla sistem seslerinden birinden bir bip sesi kullanıyorum.

İlk önce hoşunuza giden bir ses bulun (örneğin bazı mevcut olanlar için / usr / share / seslere göz atabilirsiniz) ve buna bir referans oluşturun

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

O zaman komut olarak hazır bulundurun

alias beep='paplay $BEEP'

Şimdi beepne zaman ihtiyacın olursa koş . Örneğin, bir komut tamamlandığında sizi uyarmak için:

find . | grep treasure ; beep

1
Birisi çalıştığında bu sesi çalmayı echo -e '\a'
başarabilir misin?

Bir süre döngüsü içinde bazı okuma komutlarına veya tuş vuruşlarını izleyebilecek başka bir kütüphaneye ihtiyacınız olabilir.
yuvilio

2
Bu harika bir çözüm! Artık run-my-long-test-suite.sh; beepsistem hazır olana kadar stackoverflow yapabilir ve okuyabilirim.
jamesc

3
Güzel! Kullanıyorum export BEEP=/usr/share/sounds/ubuntu/stereo/dialog-information.oggve alias beep='paplay $BEEP --volume=32768'şimdi, bu benim için iyi çalışıyor. ( beepTakma adla ses seviyesini geçersiz kılabileceğinizi unutmayın , örneğin beep --volume=15000-12dB ses seviyesinde oynatılır.)
Aralık'ta

3
Bu ogg dosyalarının çalınması, dahili PC hoparlörünün sesinden büyük gecikme dereceleriyle sonuçlanabilir. Sadece gecikmenin çok değişken göründüğü değil. Çoğu insanın umursamadığını ama gerçek zamana veya gerçek zamana yakınlığa ihtiyaç duyduğunuzda PC hoparlörünün sesli geri bildirim için muhtemelen en iyi seçenek olduğunu kabul ediyorum.
H2ONaCl

21

Bu sorunu kalıcı olarak çözmek için:

  • Run gconf-editorve eğer desktop | gnome | peripherals | keyboard | bell_modeayar mevcut olduğu o andan itibaren bunu değiştirmek offiçinon
  • Run dconf-editorve eğer org | gnome | settings-daemon | peripherals | keyboard | bell-modeayar mevcut olduğu o andan itibaren bunu değiştirmek offiçinon
  • pactl upload-sample /usr/share/sounds/gnome/default/alerts/glass.ogg bell.oggDosyaya ekle ~/.xprofile(ihtiyacınız gnome-control-center-dataolan glass.ogg)
  • [ "$DISPLAY" ] && xset b 100Dosyaya ekle~/.bashrc

Bu çözümü etkinleştirmenin en basit yolu yeniden başlatmaktır.

Ayrıca, bu çözümü zaten açık olan bir terminal penceresi için hemen uygulamak için, pactlkomutu çalıştırın ve xsetsöz konusu terminal penceresinde komutu çalıştırın .


pactl upload-sampleKomutu bir kabuk betiğine koydum , ancak yönteminiz daha organize. Teşekkürler!
JoBu1324

Bu pactlkomutu koyarsanız ~/.xprofile, GUI oturumunun başlangıcında çalıştırılır.
jdthood

dconf-editorSürüm bell-modeayarı gibi görünüyor org.gnome.settings-daemon.peripherals.keyboard.
lgarzo,

@lgarzo: Tavsiyen için teşekkürler. Cevabı güncelleyeceğim.
jdthood

1
@ Hibou57: Eğer paket var emin olun içeren glass.oggyüklü
Janus Troelsen

21

Bu google'da çok yüksek puan alan bir soru olduğundan, hem konsolda hem de X11'de bip özelliğini yeniden etkinleştirmek için attığım adımları ekleyeceğim:


Linux Konsolu için ( CTRL+ ALT+ F1... F6):

Neden varsayılan olarak çalışmıyor

Daha önce cevaplandığı gibi , pcspkrPC Hoparlörünün çekirdek sürücüsü Ubuntu'da kara listede.

Yeniden başlatılana kadar geçici olarak etkinleştir:

sudo modprobe pcspkr

Açılışta otomatik olarak etkinleştir:

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

( pcspkrile hazırlayarak satırı sil veya yorum yap #)


X11 terminalleri için (varsayılan gibi gnome-terminal)

Neden varsayılan olarak çalışmıyor

X altında, Unity, KDE, Gnome Shell kullanırken module-x11-bellolduğu gibi, varsayılan olarak varsayılan olarak yüklenen bip olayları PulseAudio tarafından yakalanır /usr/bin/start-pulseaudio-x11. Ve PulseAudio'nun sesli uyarısı bip sesi çıkarır bell.ogg, varsayılan olarak boştur. Ek olarak, zil sesi kapatılabilir.

Geçerli oturumu geçici olarak etkinleştirmek

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

Deneyebileceğiniz başka örnekler de var /usr/share/sounds; örneğin/usr/share/sounds/gnome/default/alerts/

beepProgramın gerçekten gerekli olmadığını unutmayın . Ancak, kurulu ise, PC Hoparlörünü kullanır. X'in altındaki zili etkinleştirmenin tek yolu buydu:

sudo apt-get install beep

Önyüklemede otomatik olarak etkinleştirmek için, yukarıdaki satırları ~/.profileveya/etc/profile


Test etmek için:

printf '\a'

Bip!

beep

Buzz!


Bir bilgisayar hoparlörü bip sesini otomatik olarak etkinleştirmek için , /etc/modprobe.d/blacklist.conf dosyasında belirtilen satırı yorumlamanız gerekir (aksi halde karartmayı devre dışı bırakmak istiyorsanız).
z33k

1
Her iki çözüm Ubuntu 16.04 Not üzerinde çalışmak: pcspkrve bell.oggbağımsız yaklaşımlardır. beepçeşitli yaklaşımlar kullanarak bip sesi çıkarmaya çalışır, örneğin, ioctl(console_fd, KIOCSOUND, period)kullanım pcspkr(ana kartta ses PC hoparlöründen geliyor), printf '\a'temelli yöntem sadece kullanmadan çalışabilir bell.ogg(ses normal hoparlörlerden geliyor). İkinci yöntem, pulseaudio servisi başlatılana ve / veya xset b onçalıştırılana kadar çalışmayabilir
jfs

pactl upload-sample ...Benim için altın oldu. Örnek yüklemeyi tekrar kalıcı olarak yapılandırmanın yolu nedir?
ulidtko

@ ulidtko: Sadece şu satırları ekleyin ~/.profileya da sistem genelinde/etc/profile
MestreLion

@MestreLion yanlış. load-sample bell.ogg /usr/share/sounds/ubuntu/stereo/bell.oggiçinde /etc/pulseaudio/default.pa.
ulidtko

15

Bu sorunla daha önce karşılaştım. Hatırladığım kadarıyla, sorun şu ki terminal zili bir dahili bilgisayar hoparlörünü çalmaya çalışıyor (eski okul masaüstünde olduğu gibi) ancak dizüstü bilgisayarlar ve bazı yeni bilgisayarlar böyle bir şeyi kaçırıyor.

Ben o zaman buldum tek çözüm oldu sudo apt-get install soxve

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

Örneğin

 play -n synth 0.1 sine 880 vol 0.5

çözümümü deneyin - sizin için işe yarayıp yaramadığını bilmek isterim!
JoBu1324

hoparlör testi de bunun için kullanabilirsiniz
Janus Troelsen

1
Ayrıca güzel gitar koparmak tonu olabilir: play -q -n synth 2 pluck C5. C5 nottur.
Pablo A

3

Sonunda alsamixerPC Bip seçeneğine ihtiyaç duymayan bir çözüm buldum . Tüm değişikliklerimi hatırladığımı düşünüyorum:

aşağıdakileri uncomment /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

bu böcek başına , koşpactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg


Bunu denedim, Pakt bana verdi Connection failure: Connection refused pa_context_connect() failed: Connection refused.
YodaDaCoda

Belki bu konu size yardımcı olacaktır - hiç pulseaudio'yu root olarak kullandıysanız.
JoBu1324

Aslında farklı bir sorun yaşıyorum. Pulseaudio atıyor Failed to open module "module-esound-protocol-unix": file not found. Muhtemelen burada 13.04 kullanmaya başladığımdan beri tartışmaya değmez, ancak çözümünüzü doğrulayabilmek isterim.
YodaDaCoda

Güzel, 15.04 için biraz farklı çizgiler.
VRR

2

Bilgisayara bağlı gerçek hoparlörleriniz varsa ve bir bip sesi alamıyorsanız, muhtemelen compiz kullandığınız için. Compiz, pulseaudio'ların bip seslerini yakaladığına ve metacity normal kurulumdan geçerken onları çaldığına güveniyor ve bir bip sesi çalmak için libcanberra'yı kullanıyor. Metakilite ile çalışırsa ve derleme yapmazsanız, bu sizin probleminizdir, aksi takdirde verilen cevap htorque ise acayip.



2

" Bip sadece PC'nizde bir 'hoparlör' varsa çalışır. Pek çok modern dizüstü bilgisayar / küçük cihazda bir tane yoktur".

Bunun gibi bir ses çalmayı deneyin: Kısa ve tatlı gibi görünen play xxxxx.wav hoş bir wav dosyası buldum ama siz de kendiniz seçebilirsiniz. Her şey başarısız olduğunda benim için çalışıyor.


Teşekkürler: tredegar & hk_centos


1

Alternatif bir yaklaşım - xterm / konsolunuzu "Visual Bell" olarak ayarlayın, böylece bip sesi çıkardığında, pencere renklerini kısa bir süre için tersine çevirir.

Komut bittiğinde dikkatimi çekmek için bip adı verilen bir bash fonksiyonum var.

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

Ve bu şekilde kullanılır

longrun-command ; beep

0

Gelecekte bu için arayan adam için, AMA geç olabilir:

printf '\x07'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.