Я получаю некоторые подобные ошибки при выполнении aapt от Studio Android, Рабочее вино через playonlinux (еще не попробовали нормальное вино), или при попытке установить пар. Возможно, с другими программами также, хотя я не протестировал их всех.
После небольшого количества поиска с помощью Google я не нашел эффективное решение.
Вот пример от aapt в Studio Android:
AAPT err(Facade for 1508687752): /home/xxx/Android/Sdk/build-tools/23.0.2/aapt: 2: /home/xxx/Android/Sdk/build-tools/23.0.2/aapt: Syntax error: newline unexpected (expecting ")")
Ошибки в вине и паре подобны, это всегда - синтаксическая ошибка и что это ожидает")", или что" (" неожиданно.
Я также протестировал его со сценарием:
#!/bin/bash
echo 'test'
array=(1 2 3 4 5)
echo ${array[*]}
который дает мне ту же ошибку при выполнении с sh. Когда я выполняю его с ударом или ". /" это хорошо работает.
Какова причина этой проблемы и что я могу сделать для фиксации ее?
Хорошо, столько людей не знает это, но ссылками Ubuntu по умолчанию /bin/sh
кому: dash
, нет bash
. Можно проверить это со следующим:
ls -l /bin/sh
dash
оболочка не поддерживает массивы как bash
делает, как объяснено здесь.
Можно проверить то, что окружает Вас, в настоящее время имеют открытый с:
echo "$SHELL"
Тем не менее это очень нечетно, что предварительно упакованные программы будут встречаться с той ошибкой. Я ожидал бы, что они уже запустятся с #!/bin/bash
если им был нужен он.
Можно отредактировать рассматриваемые сценарии для включения #!/bin/bash
наверху.
Если сценарий не имеет строки "хижины" ( #!
и и т.д. наверху), затем текущая оболочка является значением по умолчанию для использования ./
для выполнения. Можно изменить оболочку входа в систему с chsh
сопровождаемый Вашим паролем при запросе и /bin/bash
при запросе. Необходимо будет повторно зарегистрироваться.
Если это не помогает, Вы могли бы также изменить символьную ссылку (это, вероятно, не повредит ничего, но YMMV):
sudo rm /bin/sh
sudo ln -s bash /bin/sh