Comment faire pour rediriger stdout et stderr de csh script
Pour le script suivant
installer.csh:
#!/bin/csh-f tar-zxf Python-3.1.1.tgz cd Python-3.1.1 ./configurer faire make install cd .. rm-rf Python-3.1.1
Usage prévu:
./install.csh |& tee install.log
Comment puis-je modifier le script, de sorte que je suis toujours un installer.journal et la sortie sur console sans demander à l'utilisateur de faire la redirection?
OriginalL'auteur Shelly Adhikari | 2009-12-04
Vous devez vous connecter pour publier un commentaire.
Quelques solutions simples:
Solution 1:
té de chaque ligne, vous voulez vous connecter, de manière indépendante, l'utilisation de
-a
commutateur de tee-shirt à ajouterSolution 2: Ajout d'un second script.
Par exemple, renommez l'installation en cours.csh à install_commands,
puis ajouter une nouvelle installation.csh script:
Oooh. bon appel de le diviser en deux scripts. +1 Encore ne pense pas que vous devriez coller avec csh si! (-:
OriginalL'auteur catchmeifyoutry
G'day,
Je très vous recommandons de déplacer loin de csh vers quelque chose comme bash ou zsh.
stdio la manipulation n'est pas possible dans le csh. Avoir une lecture de "csh de programmation considéré comme nocif". Un élégant traité sur ce sujet.
Désolé ce n'est pas une réponse directe, mais vous verrez que vous allez continuer à frapper votre tête contre les contraintes de la csh le plus vous restez avec lui.
Beaucoup de csh syntaxe est déjà disponible en bash de sorte que votre courbe d'apprentissage ne sera pas trop raide.
Voici une petite suggestion pour la même chose écrit en bash. Ce n'est pas élégant.
J'ai ajouté un peu plus de contrôles et de rapports, de sorte que si il y a un problème lors d'une étape précédente du fichier journal sera juste contenir jusqu'à jusqu'à ce que l'erreur a été découverte plutôt que d'une pile de assez inutile messages d'erreur à partir des phases ultérieures qui ne peut pas se terminer de toute façon.
acclamations,
ajouté. (-:
oups. oublié que tu voulais en double sur la console.
OriginalL'auteur Rob Wells
Vous pouvez l'exécuter dans un shell interne est exécuté et rediriger la sortie de la. Ne me souviens pas si cela fonctionne dans les csh, il a été un long temps depuis que j'ai utilisé.
OriginalL'auteur Walter Underwood