xbindkeys kaçış tırnak


6

.Xbindkeysrc komutlarında tırnak işaretlerinden nasıl kaçabilirim? Bu işlerin hiçbiri.

"pacmd dump|awk --non-decimal-data '$1~/set-sink-volume/{system ("pacmd "$1" "$2" "$3+2500)}'"

"pacmd dump|awk --non-decimal-data '\$1~/set-sink-volume/{system ("pacmd "\$1" "\$2" "\$3+2500)}'"

"pacmd dump|awk --non-decimal-data '\$1~/set-sink-volume/{system (\"pacmd \"\$1\" \"\$2\" \"\$3+2500)}'"

"pacmd dump|awk --non-decimal-data '$1~/set-sink-volume/{system (\"pacmd \"$1\" \"$2\" \"$3+2500)}'"

(Komutlar PulseAudio ses seviyesini yükseltir)

Yanıtlar:


6

Burada iki ayrı konu var ve ben ikisini de çözmeye çalışacağım.

İlk doğru bir komut alıntı yapmak nasıl .xbindkeysrc.

Tek yapman gereken işe yarayan bir emir almak bash, sonra da içine çift tırnak koymak.

Örneğin, içinde boşluk olan bir komut için, çalıştırmanız gerekir.

"/home/user/My Programs/progname"

veya

/home/user/My\ Programs/progname

içinde bash.

Bu size ihtiyacınız demektir

""/home/user/My Programs/progname""

veya

"/home/user/My\ Programs/progname"

senin içinde .xbindkeysrc.

Teknik olarak olan şudur: xbindkeys, en dıştaki çift tırnak çiftini kaldırır, ardından kalan dizgiyi kullanarak çalıştırır sh -c.


Örnekte, komut

pacmd dump|awk --non-decimal-data '$1~/set-sink-volume/{system ("pacmd "$1" "$2" "$3+2500)}'

bash iyi çalışıyor, bu yüzden sorunun başka bir yerde olduğunu düşünüyorum.

Çalıştırmayı deneyin xbindkeysile -vyapar seçeneğinde, xbindkeysön planda çalışır, bu nedenle size terminalde herhangi bir hata görebilirsiniz.

Benim durumumda, altta yatan nedenin kötü alıntı olmadığını, pacmdhata yaptığını gösteriyor

...
No PulseAudio daemon running, or not running as session daemon.

Eğer PulseAudio'nun çalışan varsa ancak, ben değiştirmek gerektiğini düşünüyorum pacmdiçin pactladam sayfası söylüyor çünkü pacmdkullanarak web gösteri argümanları ve diğer bazı örnekler almaz pactlbu amaçla.


2
Teşekkürler, emirleri kaçmadan komutu çift tırnak işaretleri içine
soktuğunuzdan

4

Çözüm olarak, ~ / bin / mychangevolume kabuk komut dosyasını, komut satırında göründüğü gibi çıkamayan komutlarla oluşturun. Gibi bir şey

#!/bin/bash
incr=$1
pacmd dump | awk --non-decimal-data '$1~/set-sink-volume/{system ("pacmd "$1" "$2" "$3'$incr')}'"

Sonra bu betiği .xbindkeysrc'den çağırın.

"mychangevolume +2500"
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.