Как мне изменить это, чтобы использовать массив?

Решение не для всех, но у меня наушники с одной пуговицей. По-видимому, некоторые из этих простых кнопок наушников используют своего рода сигнальный механизм микрофона, который проверяет, является ли вход микрофона «высоким» (, см. этот пост и этот пост). Используя дерзость, я смог убедиться, что нажатие на кнопку порождало характерный пик, недостижимый речью (, хотя я не пытался кричать! ). Покопавшись в Интернете, я нашел следующее решение, используя метод soxrec:

#!/usr/bin/sh

while true; do 
    rec -n stat trim 0.5 2>&1 | awk '/^Maximum amplitude/ && $3 > 0.89' | grep -q 'M' && playerctl play-pause
done

playerctl— это программа, управляющая воспроизведением мультимедиа. .5в коде указывает разрешение микрофона. Вы можете поиграть с этим значением, если хотите реализовать двойное касание. 0.89указывает порог нажатия кнопки. (мой в основном равен 1 при нажатии)

0
15.09.2021, 01:59
2 ответа

Это больше о программировании в целом, но я бы сказал, что повторение требует функций:

make_link() {
    Enlace=$2
    file=$1
    if [ -L "${Enlace}" ] ; then
       if [ -e "${Enlace}" ] ; then
          echo "Enlace Funcional"
       else
          echo "Enlace Roto"
       fi
    elif [ -e "${Enlace}" ] ; then
       echo "No es un Enlace"
    else
       echo "No existe"
       ln -s "$PWD"    "$Enlace"   
    fi
}
make_link "$PWD"              "../../memstick/PSP/SAVEDATA/ULES01439"
make_link "$PWD/PSP2Conf.ini" "../../memstick/PSP/SYSTEM/ULES01439_ppsspp.ini"
...

При такой настройке вы можете использовать массив или что-то еще для хранения данных вместо жестко запрограммированного списка, как указано выше. Хотя здесь необходима оценка $PWDво время выполнения, это не так просто, как могло бы быть.

0
15.09.2021, 06:10

Я не вижу большой пользы от всего сценария.

Если вы не добавите-f(принудительное )или-b(резервное копирование ), ln -sзавершится сбоем с ошибкой «Файл существует», поэтому вы можете просто запустить и дождаться сбоя.

enlace="../../memstick/PSP/SAVEDATA/ULES01439"
ln -s "$PWD" "$enlace"

Если вам нужна дополнительная информация о типе файла, если он существует, вы можете добавить file "$enlace", например.:

ln -s "$PWD" "$enlace" || file "$enlace"
0
15.09.2021, 06:19

Теги

Похожие вопросы