В очень похожей установке я столкнулся с той же проблемой. Запуск демона вручную, как показано выше, не решил проблему. Через некоторое время я обнаружил, что библиотека, которая позволяет аутентификацию на основе Gnome Keyring для Subversion, не была установлена. Сообщение об ошибке не отображалось, поэтому я не обратил на это внимания. Я установил ее с помощью:
sudo apt-get install libsvn-auth-gnome-keyring
и она сразу же заработала.
Команда read
использует stderr
для печати подсказки.Либо вы должны
2> /dev/null
при вызове скрипта 2>&1
в конец команды read
, чтобы она вместо этого использовала стандартный вывод для печати подсказки: read -n1 -r -p "Error! Press any key to continue..." 2>&1
Подсказки и любые диагностические сообщения всегда генерируются в стандартном потоке ошибок. Это делается для того, чтобы не мешать возможным перенаправлениям обычного вывода. Кстати, это также верно для основного приглашения оболочки ($PS1
).
Это означает, что подсказка, которую выводит read -p
, также записывается в стандартный поток ошибок, и, поскольку вы перенаправляете этот поток в /dev/null
, вы никогда не увидите подсказку.
Я бы посоветовал проверить существование /Users/leetbacoon/functions.sh
, прежде чем пытаться найти его:
if [ -f "$HOME/functions.sh" ]; then
. "$HOME/functions.sh"
else
printf '%s is missing...\n' "$HOME/functions.sh" >&2
done
Это имитирует способ, которым ~/.bash_profile
иногда вызывает ~/.bashrc
, и позволяет избежать ошибки «Нет такого файла или каталога».
Также обратите внимание, что создаваемое вами сообщение об ошибке вводит в заблуждение. Поиск файла ничего не «порождает», даже подоболочку.