Вы могли попытаться узнать почему nm
закрывает устройства:
dbus-monitor --system &
nmcli g logging level DEBUG
--> trigger suspend
Когда (как в моем случае (Fedora 20)), systemd
инициировал сигнал, можно отклонить его доставку в dbus конфигурации:
---- /etc/dbus-1/system.d/99-my-suspend.conf ---
<busconfig>
<policy user="root">
<deny receive_interface="org.freedesktop.login1.Manager"
receive_type="signal"
receive_member="PrepareForSleep"/>
</policy>
</busconfig>
К сожалению, эти правила не являются очень мелкомодульными, и это заблокируется PrepareForSleep
сигнал для других процессов также.
Всегда цитировать переменные
Вы говорите ECHO $ HASHH
, но это полос ведущих и пробел пробела и конденсируется всеми внутренними пространствами. Это не показывает содержание переменной $ HASHH
, скажем вместо этого Echo «<$ Hash>»
, и вы увидите ведущее пробелование.
Похоже, что импульс аудио использует вкладку перед активным словом. Положите вкладку в начало значения в триггере, и оно будет работать.
Непринники беспокоит вас.
Попробуйте это:
$ hash=" active port: <analog-output-speaker>%%%%%"
$ echo $hash
active port: <analog-output-speaker>%%%%%
$ echo "<$hash>"
< active port: <analog-output-speaker>%%%%%>
$ if [[ "$hash" =~ "active port" ]]; then echo matched; else echo no match; fi
matched
$ if [[ "$hash" =~ "non active port" ]]; then echo matched; else echo no match; fi
no match
Если вы добавите SET -VX
в #! / Bin / Bash
, а затем запустите свой скрипт, вы увидите:
[ [[Active Port:
, и вы можете видеть, что строки не одинаковы, потому что первая строка имеет некоторые пробелы.
Для удаления пробелы целых струн Вы можете использовать: Trim --d '[[: Space:]]
для удаления Пространства ведущих струн Вы можете использовать: Sed -e 'S / ^ [[[: Space:]] * //'
для удаления Пространства трейлинга Вы можете использовать: SED-E 'S / [ : Space:]] * $ // '