2015-04-09 2 views
1

У меня есть каталог USR/SRC/Code, и поскольку использование отличается для всех, и люди могут разместить это в любом месте своего рабочего пространства, я хочу сделать так, чтобы до тех пор, пока SRC/Code доступны в каталоге для его работы, такие как */SRC/Code вот то, что я пытался и не работал:Как разместить символ подстановки в строке bash

#!/bin/bash 

    DIRECTORY="/SRC/Code" 
    if [ -d "\*$DIRECTORY" ]; then 
     # Will enter here if $DIRECTORY exists, even if it contains spaces 
      echo "TRUE" 
    fi 

#!/bin/bash 

DIRECTORY="*/SRC/Code" 
if [ -d "\$DIRECTORY" ]; then 
    # Will enter here if $DIRECTORY exists, even if it contains spaces 
     echo "TRUE" 
fi 


#!/bin/bash 

DIRECTORY="\*/SRC/Code" 
if [ -d "\$DIRECTORY" ]; then 
    # Will enter here if $DIRECTORY exists, even if it contains spaces 
     echo "TRUE" 
fi 
+0

Можете ли вы привести несколько примеров того, где этот каталог может быть? Может ли он существовать произвольно глубоко под текущим каталогом? –

+0

Да, папки могут существовать под звуковым сигналом ниже текущего каталога. –

ответ

2

Globs может соответствовать несколько файлов, так что лучше хранить их в массиве:

#!/bin/bash 
shopt -s nullglob globstar # Enable recursion and zero matching 
directories=(**/SRC/Code) 
case "${#directories[@]}" in 
    1) echo "Found the directory: ${directories[0]}" ;; 
    0) echo "There were no matches..." ;; 
    *) echo "There was more than one match!" ;; 
esac 
+1

У меня создается впечатление, что вы также захотите «globstar» и посмотрите '**/SRC/Code /', но давайте посмотрим, что должен сказать OP. –

+0

Я закончил использовать globstar и добавил в andother *, как сказано в предыдущем комментарии. Я просто не понимаю 1 0 *. В моем случае, если каталог не найден, я хочу распечатать, что скрипт теперь выходит, и для его использования нужно запустить другой скрипт, чтобы создать этот каталог перед запуском этого скрипта. –

+0

@that, добавьте некоторое объяснение, чтобы Алекс понял, что происходит –

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