2012-01-18 4 views
0

Я использую скрипт bash для установки приложения в Mac OS X «Lion». Сначала я копирую пакет приложений на место, а затем пытаюсь установить postgres в комплект приложения. Путь данных для db postgres должен находиться в «~/Library/Application Support/myappfolder/data /».mac osx 10.7 install script error: "~/Library /" not found

Теперь проблема (кажется, что) скрипт наткнулся, потому что ОС говорит, что путь не найден. Резервное копирование имен путей я получаю в «~/Library /», и он все еще терпит неудачу. Сценарий запускается с правами администратора.

Чтобы поместить это иначе, из терминала, это работает:

me: cd ~/Library 

, но это не делает:

me: mydir="~/Library/" 
    me: cd $mydir 

Я знаю, что изменилось в 10.7, но я не нашел ответ в центре dev еще нет.

ответ

1

Я не думаю, что это Лев-специфический. Когда вы используете кавычки, вы вызываете символ ~, который обрабатывается буквально, а не как псевдоним для $HOME. Таким образом, он ищет фактический каталог с тильдой в имени, которого не существует.

Попробуйте использовать mydir="$HOME/Library" вместо этого, чтобы узнать, устраняет проблему.

+0

Спасибо, это работает и хорошо вписывается в сценарий установщика. Как я заметил в другом комментарии, это не имеет ничего общего с ОСШ. – Mophilly

1

Это тоже не работает в 10.5, так что я не думаю, что это проблема Льва. Что-то вроде этого всегда будет работать:

eval "cd $mydir" 
+0

Это тоже работает, и вы правы, проблема была между стулом и клавиатурой, а не с osx. – Mophilly