1

Чувствую себя немного глупо прямо сейчас:

Почему мой разум всегда верен?

я пробовал

# this should let me know what's not a directory or 
# symbolic link.
whoa=`find ${MUSICDIR} ! -type l ! -type d | wc -l`

# I would expect if it's 0 (meaning nothing was found) that
# one of these statements would evaluate to false, but so far
# it's always evaluating to true
if [[ "${whoa}" != "0" ]]
    do something
fi
if [[ ${whoa} -gt 0 ]]
    do something
fi

Что мне не хватает?

2 ответа2

3

Оказывается, я пропустил "тогда" после оператора if.

должно быть

if [[ "${whoa}" != "0" ]]
then
    do something
fi
1

Обратные пометки собирают стандартный вывод подпроцесса, и whoa будет содержать текст, а не уровень ошибки. Вы можете использовать $? чтобы получить уровень ошибки последней команды.

Но если вы используете find, вы можете использовать его функцию exec чтобы что-то сделать.

Кроме того, вы можете использовать тип f для файла, чтобы найти обычный файл.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .