2013-03-19 13 views
10

uczę skryptów powłoki na własną rękę, a ja byłem dochodzenie, jak to zrobić, czy i ja nie rozumiem przykład, że w przeszłości:Shell Scripting Jeśli [-f ./file]

if [ -f ./$NAME.tar ]; then 
    //do something 
else 
    //something else 

Teraz eksperymentowałem i dałem NAME nazwę pliku, który miałem w swoim katalogu. Kiedy wykonywałem operację bez -f, wchodziło to w inny warunek, ale z -f wchodzi w // działanie warunku. Zakładam więc, że -f jest dla pliku. Czy to jest poprawne? Po prostu nie mogłem znaleźć informacji, aby to potwierdzić.

Odpowiedz

14

Od bash instrukcji:

-f file - True if file exists and is a regular file. 

Więc tak, -f oznacza plik (./$NAME.tar w danym przypadku) istnieje i jest zwykłym plikiem (nie Plik urządzenia lub katalogu na przykład).

+0

Nie znalazłem strony podręcznika dla tego .. głupiego mnie. Dziękuję Ci. – Alessandroempire

+3

Jest w 'man 1 bash' w dziale" WYRAŻENIA WARUNKOWE ". – kamituel