shell: вернуть значения теста в файл / каталог - PullRequest
0 голосов
/ 23 февраля 2010

Я не могу проверить возвращаемые значения функционального теста; мужской тест мне не сильно помог.

#!/bin/bash
test=$(test -d $1)
if [ $test -eq 1 ]
then
    echo "the file exists and is a directory"
elif [ $test -eq 0 ]
    echo "file does not exist or is not a directory"
else 
    echo "error"
fi

Ответы [ 3 ]

5 голосов
/ 23 февраля 2010

Попробуйте вместо

if test -d $1
then
    echo 'the file exists and is a directory'
else
    echo 'the file doesn't exist or is not a directory'
fi
4 голосов
/ 23 февраля 2010

Каждый раз, когда вы используете test в коде возврата test, Бог убивает котенка.

if test -d "$1"

или

if [ -d "$1" ]
3 голосов
/ 23 февраля 2010

$ (test -d $ 1) будет заменено тем, что выводит тест, а не кодом возврата Если вы хотите проверить его код возврата, используйте $?, например,

test -d $1
test=$?
if [ $test -eq 1 ]
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...