Я пробував всі види способів перенаправляють як stdoutі stderrв /dev/nullбез будь - якого успіху. Я майже все життя керую басом, з яким у мене ніколи не виникало цього питання, але я один раз в BSD я затримався /bin/sh.
Що я спробував:
if ls ./python* 2> /dev/null; then
echo found Python
fi
... яка працює; якщо Python відсутній, він відключить повідомлення про помилки з ls. Однак, якщо python.tgzвін присутній, виводиться рядок з таким виглядом:
# ./test.sh
./python-2.7.3p1.tgz
Я спробував:
if ls ./python* &> /dev/null; then
echo found Python
fi
і
if ls ./python* 2>1 > /dev/null; then
echo found Python
fi
і
if ls ./python* > /dev/null; then
echo found Python
fi
Ніщо насправді не працює. Я можу переспрямувати лише один з виходів, а не обидва одночасно.
/bin/shреалізували&>/dev/nullсинтаксис, мабуть, не так, або я маю більш стару версію (яку я ніяк не можу повторити, запуск OpenBSD 5.3 tho, тому повинно бути достатньо)