2015-08-19 3 views
0

Проверка наличия каталога, который должен быть разрешен для ~/code/devtools/deploy-mix.расширение переменной bash в выражении if

Этот оператор if не проходит - хотя я могу cd ~/code/devtools/deploy-mix. Plz помочь с Баш синтаксисом :)

GIT_DIR="$HOME/code" 
if [ -d "${GIT_DIR}/devtools/deploy-mix" ]; then 
    echo "found $GIT_DIR/devtools/deploy-mix" 
fi 

выход:

sh -x script 

'[' -d '$ HOME/код/​​DevTools/развернуть-микс' ']'

Я люблю выдавать какую-то интернет-карму для этого, и я в порядке, если вы решите называть меня noob (иногда угол кодирования не сидит на вашем плече).

+0

не имеет ничего общего с 'if' вообще. У вас будет такая же проблема: 'test -d '$ GIT_DIR"; echo $? '. –

ответ

1

Замените ~ на $HOME или удалите кавычки.

Примеры:

GIT_DIR="$HOME/code" 
GIT_DIR=~/'code' 
+0

Возможно, вам стоит больше узнать о *, который * цитирует для удаления. Котировки 'GIT_DIR = '~/code'' плохие; кавычки '[-d" $ {GIT_DIR} "]' хороши. –

+0

GIT_DIR = "$ HOME/code" если [-d "$ {GIT_DIR}/devtools/deploy-mix"]; то \t эхо "найдено $ GIT_DIR/DevTools/развернуть-микс" фи ш -х '[' -d '$ HOME/код/​​DevTools/развернуть-микс' ']' – Manchego

Смежные вопросы