Điểm:1

Chuyển đổi tập lệnh ruby ​​​​â thành tập lệnh bash

lá cờ gb

Tôi cần biến ââscript ruby ​​này thành bash cho i3 trên Ubuntu:

#!/usr/bin/env ruby

chìm = %x`pacmd danh sách chìm | grep -e 'name:' -e 'index:' -e 'active'`

er = /\* chỉ mục: ([0-9])/

chìm er.match

nếu $1 == "1"
    in 'usb'
khác 
    in 'micrô'
chấm dứt

Tập lệnh phải được sử dụng cho i3block và hiển thị trên i3bar. Để làm ví dụ, tập lệnh sau đây hiển thị kết quả trên i3block, nhưng tôi không hiểu nó thực hiện như thế nào.

#!/bin/bash

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

tiếng vang "BAT: $BAT"

thoát 0

Cảm ơn bạn đã giúp đỡ!

Điểm:3
lá cờ in
#!/bin/bash
chìm=$(pacmd list-sinks | grep '* index:')
nếu [[ "${sink:11:11}" -eq "1" ]]
sau đó
    tiếng vang 'usb'
khác
    tiếng vang 'micrô'
fi

Điều này đang tạo ra rất nhiều giả định, vì bạn không giải thích nhiều về tập lệnh ruby ​​​​bạn đã dán và mục tiêu thực tế là gì.

Tập lệnh bash này thực hiện một grep trên đầu ra của danh sách các phần chìm của pulseaudo, trong đó chỉ mục được bắt đầu bằng dấu *. sau đó từ dòng này, ký tự thứ 11 được kiểm tra. Nếu là 1 thì echo ra USB, nếu không thì MIC.

Như đã nói, đây là giả định rất nhiều và phong cách lập trình này có thể sai một cách vui nhộn nếu có các chỉ mục khác đang hoạt động hoặc bạn muốn tên của thiết bị...

Tôi không biết i3bar hoặc i3blocks, nhưng có thể bạn cần đặt khoảng thời gian trong i3blocks hoặc gói tập lệnh trong vòng lặp while, bởi vì tập lệnh chạy, xuất ra thứ gì đó rồi thoát ra, vì vậy thứ gì đó sẽ liên tục kích hoạt nó. Cách bạn làm là dành riêng cho i3, điều mà tôi không biết gì về nó. Dựa trên các trang hướng dẫn, đây là những gì tôi sẽ thử đầu tiên

[xung]
lệnh=/usr/local/bin/check_pulse.sh
khoảng thời gian = 15

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

lá cờ gb
Cảm ơn, tập lệnh hoạt động hoàn hảo, nhưng nó không giải quyết được sự cố của tôi. Tôi cần tập lệnh i3block hiển thị 'usb' hoặc 'mic' sau kết quả trên i3bar. Tập lệnh của bạn hoạt động tốt trên dòng lệnh, nhưng không hiển thị gì trên i3bar. Tại sao?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.