G'day,
Я очень рекомендую перейти от 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
Я добавил немного больше проверок и отчетов, чтобы в случае возникновения проблемы на более раннем этапе файл журнала просто содержал до тех пор, пока ошибка не была обнаружена, а не стек довольно бесполезных сообщений об ошибках из более поздних фаз, которые в любом случае не завершено.
ура