2010-08-02 3 views
2

Вот очень простой, возможно дублированный (извините - я попробовал поиск) shell-скриптовый вопрос.Простой вопрос сценария оболочки: задайте имя каталога с помощью переменной?

Каков правильный синтаксис для установки DATA_DIR в качестве подкаталога WDM_DIR в сценарии ниже? (Линия 2.)

WDM_DIR='/Users/ap257/wdm/wdm' 
DATA_DIR=$WDM_DIR+/wdm/pylons_data/getdata/ 
cd $DATA_DIR 

Дело в том, что люди могут изменить WDM_DIR к тому, что путь является правильным для своей системы, но data_dir всегда в том же месте относительно него.

ответ

3

Вот правильный синтаксис

WDM_DIR=/Users/ap257/wdm/wdm 
DATA_DIR=${WDM_DIR}/wdm/pylons_data/getdata/ 
cd -- "$DATA_DIR" 

Ну синтаксис может немного отличаться в зависимости от того, какую оболочку вы используете.

+0

Последняя строка должна быть 'cd -" $ DATA_DIR "'. '' 'В случае' $ WDM_DIR' начинается с '-' (не проблема, если вам нужен абсолютный путь). Кавычки в случае, если '$ WDM_DIR' содержит специальный символ, например пробел. Правило 1 сценариев оболочки: ** Всегда ставьте двойные кавычки вокруг переменных подстановок **. – Gilles

+0

@ Gilles Спасибо за входные данные. Я обновил свой ответ с вашими предложениями. – Gopi

0

Простой способ:

DATA_DIR="${WDM_DIR}/wdm/pylons_data/getdata/" 
Смежные вопросы