día G,
I altamente recomiendan alejarse de CSH hacia algo como bash o zsh.
stdio manipulación no es posible en csh. Lea "csh programming considered harmful". Un elegante tratado sobre este tema.
Disculpe, no es una respuesta directa, pero descubrirá que seguirá golpeando su cabeza contra las limitaciones de csh cuanto más lo mantenga.
Mucha sintaxis de csh ya está disponible en bash, por lo que su curva de aprendizaje no será demasiado pronunciada.
Aquí hay una sugerencia rápida para lo mismo escrito en bash. Aunque no es elegante.
#!/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
He añadido un poco más el control y la presentación de informes de manera que si hay un problema en una etapa anterior del archivo de registro solo contendrá hasta hasta que el error fue descubierto en lugar de una pila de mensajes de error bastante inútil desde el fases posteriores que no se completarían de todos modos.
aplausos,
Gracias. Estaba pensando que podría haber algún otro truco que no conozco para llegar a una solución elegante. –
Oooh. Una buena llamada para dividirlo en dos secuencias de comandos. +1 ¡Aún así, no creo que deba seguir con csh! (-: –