Рейтинг:1

Преобразование ruby-скрипта в bash-скрипт

флаг gb

Мне нужно превратить этот ruby-скрипт в bash для i3 на Ubuntu:

#!/usr/bin/env рубин

приемник = %x`pacmd список приемников | grep -e 'имя:' -e 'индекс:' -e 'активный'`

er = /\* индекс: ([0-9])/

э.матч раковина

если $1 == "1"
    распечатать «USB»
еще 
    печатать "микрофон"
конец

Скрипт должен использоваться для i3block и отображаться на i3bar. В качестве примера следующий скрипт показывает результат на i3block, но я не понимаю, как он это делает.

#!/бин/баш

BAT=$(acpi -b | grep -E -o '[0-9][0-9]?%')

эхо "БАТ: $БАТ"

выход 0

Спасибо за вашу помощь!

Рейтинг:3
флаг in
#!/бин/баш
раковина=$(список-приемников pacmd | grep '* index:')
если [[ "${sink:11:11}" -eq "1" ]]
тогда
    эхо 'USB'
еще
    эхо "микрофон"
фи

Это делает много предположений, так как вы мало объяснили о вставленном скрипте ruby ​​​​и какова фактическая цель.

Этот bash-скрипт выполняет grep на выходе списка приемников pulseaudo, где индексу предшествует *. затем из этой строки проверяется 11-й символ. Если это 1, то эхо-выход USB, иначе MIC.

Как уже говорилось, это предполагает многое, и этот стиль программирования может пойти до смешного неправильно, если в игре есть другие индексы или вам нужно имя устройства...

Я не знаю i3bar или i3blocks, но, возможно, вам нужно установить интервал в i3blocks или заключить скрипт в цикл while, потому что скрипт запускается, что-то выводит, а затем завершает работу, поэтому что-то должно постоянно запускать его. То, как вы это делаете, зависит от i3, о котором я ничего не знаю. Основываясь на справочных страницах, это то, что я бы попробовал в первую очередь

[пульс]
команда=/usr/local/bin/check_pulse.sh
интервал=15

http://manpages.ubuntu.com/manpages/bionic/man1/i3blocks.1.html

флаг gb
Спасибо, скрипт работает отлично, но мою проблему не решает. Мне нужен скрипт i3block, который показывает «usb» или «микрофон» после результата на i3bar. Ваш скрипт отлично работает в командной строке, но ничего не отображает на i3bar. Почему?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.