2012-05-02 3 views
1

Я новичок в написании сценариев, и я нашел следующее выражение в скрипте.Что означает этот скрипт

if [ -d $_path ];then 

Может кто-нибудь помочь мне понять, что делает -d $ _path, значит, внутри оператора if?

Заранее благодарим за любую помощь.

+1

Обратите внимание, что cmd.exe не DOS. Это командный интерпретатор, начиная с 1998 года для Windows. И bash также не DOS. DOS была 16-битной ОС, afaik, а не оболочкой. Windows назвала значок рабочего стола «DOS-приглашение», в котором была запущена оболочка, в основном совместимая с cmd.32 из интерфейса, но не совместимая с Bash. –

ответ

3

man test От:

-d FILE 
    FILE exists and is a directory 
+0

'man' не звучит очень DOSy. –

+1

и тестовые скобки в примере вопросов, ни тег «bash». :-) –

+0

О, я не упоминал их. :) Прости. –

2

Это испытание для того _path является каталогом.

Примечание bash и DOS - это две совершенно разные вещи.

1

Он проверяет, является ли значение _path - это каталог. Обратите внимание, что _path является переменной и $ является операцией получения-операции (вид); он не ищет папку под названием $_path.

В качестве примера:

> mkdir dir 
> touch file 
> ls 
dir/ file 
> _path=dir # set the variable `_path` 
> if [ -d $_path ]; then echo yes; else echo no; fi 
yes 
> _path=file 
> if [ -d $_path ]; then echo yes; else echo no; fi 
no