Добрый день,
Я настоятельно рекомендую перейти от csh к чему-то вроде bash или zsh.
Манипулирование stdio невозможно в csh. Прочтите статью "программирование csh считается вредным". Изящный трактат на эту тему.
Извините, это не прямой ответ, но вы обнаружите, что будете продолжать биться головой о ограничениях csh, чем дольше вы придерживаетесь его.
Большая часть синтаксиса csh уже доступна в bash, поэтому кривая обучения не будет слишком крутой.
Вот быстрое предложение для того же самого, написанного в bash. Хотя это не элегантно.
#!/bin/bash
TO_LOGFILE= "| tee -a ./install.log"
tar -zxf Python-3.1.1.tgz 2>&1 ${TO_LOGFILE}
if [ $? -ne 0 ];then
echo "Untar of Python failed. Exiting..."; exit 5
fi
cd Python-3.1.1 2>&1 ${TO_LOGFILE}
if [ $? -ne 0 ];then
echo "Can't change into Python dir. Exiting..."; exit 5
fi
echo "============== configure ================"
./configure 2>&1 ${TO_LOGFILE}
if [ $? -ne 0 ];then
echo "Configure failed. Exiting..."; exit 5
fi
echo "================ make ==================="
make 2>&1 ${TO_LOGFILE}
if [ $? -ne 0 ];then
echo "Compile of Python failed. Exiting..."; exit 5
fi
echo "================ install ================"
make install 2>&1 ${TO_LOGFILE}
if [ $? -ne 0 ];then
echo "Install of Python failed. Exiting..."; exit 5
fi
cd ..
rm -rf Python-3.1.1 2>&1 ${TO_LOGFILE}
exit 0
Я добавил немного больше проверок и отчетов, так что, если возникнет проблема на более раннем этапе, файл журнала будет содержать только до тех пор, пока ошибка не будет обнаружена, а не стопку довольно бесполезных сообщений об ошибках из более поздних этапов, которые не будут завершены. тем не мение.
ваше здоровье,
person
Rob Wells
schedule
04.12.2009