Puncte:1

Convertiți un script ruby ​​într-un script bash

drapel gb

Trebuie să transform acest ruby ​​ââscript în bash pentru i3 pe Ubuntu:

#!/usr/bin/env ruby

sink = %x`pacmd list-sinks | grep -e 'nume:' -e 'index:' -e 'activ'`

er = /\* index: ([0-9])/

er.chiuvetă de chibrit

dacă $1 == "1"
    tipăriți „usb”
altfel 
    imprimați „microfon”
Sfârşit

Scriptul trebuie folosit pentru i3block și afișat pe i3bar. Ca exemplu, următorul script arată rezultatul pe i3block, dar nu înțeleg cum o face.

#!/bin/bash

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

echo „BAT: $BAT”

iesirea 0

Multumesc pentru ajutor!

Puncte:3
drapel in
#!/bin/bash
sink=$(pacmd list-sinks | grep '* index:')
dacă [[ "${sink:11:11}" -eq "1" ]]
atunci
    ecou „usb”
altfel
    ecou „microfon”
fi

Acest lucru înseamnă o mulțime de presupuneri, deoarece nu ați explicat prea multe despre scriptul ruby ​​pe care l-ați lipit și care este obiectivul real.

Acest script bash face un grep la ieșirea listei pulseaudo de chiuvete, unde indexul este precedat de un *. apoi din această linie se verifică al 11-lea caracter. Dacă este 1, ecou out USB, în caz contrar MIC.

După cum s-a spus, acest lucru presupune multe și acest stil de programare poate da greșit hilar dacă există alți indici în joc sau dacă doriți numele dispozitivului...

Nu știu i3bar sau i3blocks, dar poate că trebuie să setați un interval în i3blocks sau să împachetați scriptul într-o buclă while, deoarece un script rulează, scoate ceva și apoi iese, așa că ceva ar trebui să-l declanșeze continuu. Modul în care o faci este specific i3, despre care nu știu nimic. Pe baza paginilor de manual, asta este ceea ce aș încerca mai întâi

[puls]
command=/usr/local/bin/check_pulse.sh
interval=15

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

drapel gb
Mulțumesc, scriptul funcționează perfect, dar nu îmi rezolvă problema. Am nevoie de un script i3block care să arate „usb” sau „mic” după rezultatul pe i3bar. Scriptul dumneavoastră funcționează bine pe linia de comandă, dar nu afișează nimic pe i3bar. De ce?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.