Я получил эту ошибку "Connection to PulseAudio failed", когда были разные значения переменной среды XDG_RUNTIME_DIR.
Сервер pulseaudio работал с одним значением, а pavucontrol работал с другим стоимость. Следовательно, pavucontrol искал неправильный каталог для сокета связи, созданного pulseaudio.
В этом случае решение состоит в том, чтобы убедиться, что оба процесса имеют одинаковое значение для среды XDG_RUNTIME_DIR переменная.
Правильный синтаксис if для выражений в bash - это ссылка:
Таблица 7-2. Объединив выражения
Operation Effect
------------------ ------------------
[ ! EXPR ] True if EXPR is false.
[ ( EXPR ) ] Returns the value of EXPR. This may be used to override the normal precedence of operators.
[ EXPR1 -a EXPR2 ] True if both EXPR1 and EXPR2 are true.
[ EXPR1 -o EXPR2 ] True if either EXPR1 or EXPR2 is true.
, ваш оператор if должен выглядеть следующим образом:
if [ "$SECONDS" -ne "$one" -o "$SECONDS" -ne "$two" ]
Вы также можете использовать ключевое слово [[:
if [[ "$SECONDS" -ne "$one" || "$SECONDS" -ne "$two" ]];
Вот его график help [[:
EXPR1 && EXPR2 True if both EXPR1 and EXPR2 are true; else false
EXPR1 || EXPR2 True if either EXPR1 or EXPR2 is true; else false
Когда вы начинаете ваше утверждение, используя [, затем пробел и другое [; Bash подумает, что вы используете test (первый [) на другом test (второй [).
И перед вашим || он будет искать ] literal, не может найти и жалуется на это.
Правильный синтаксис if для выражений в bash - это ссылка:
Таблица 7-2. Объединив выражения
Operation Effect
------------------ ------------------
[ ! EXPR ] True if EXPR is false.
[ ( EXPR ) ] Returns the value of EXPR. This may be used to override the normal precedence of operators.
[ EXPR1 -a EXPR2 ] True if both EXPR1 and EXPR2 are true.
[ EXPR1 -o EXPR2 ] True if either EXPR1 or EXPR2 is true.
, ваш оператор if должен выглядеть следующим образом:
if [ "$SECONDS" -ne "$one" -o "$SECONDS" -ne "$two" ]
Вы также можете использовать ключевое слово [[:
if [[ "$SECONDS" -ne "$one" || "$SECONDS" -ne "$two" ]];
Вот его график help [[:
EXPR1 && EXPR2 True if both EXPR1 and EXPR2 are true; else false
EXPR1 || EXPR2 True if either EXPR1 or EXPR2 is true; else false
Когда вы начинаете ваше утверждение, используя [, затем пробел и другое [; Bash подумает, что вы используете test (первый [) на другом test (второй [).
И перед вашим || он будет искать ] literal, не может найти и жалуется на это.