J'ai un script shell tcsh que je voudrais arrêter avec une erreur sur un état non nul la plupart du temps, mais dans certains cas je veux l'ignorer. Par exemple:Comment exécuter une commande shell tcsh et ignorer sélectivement l'état?
#!/bin/tcsh -vxef
cp file/that/might/not/exist . #Want to ignore this status
cp file/that/might/not/exist . ; echo "this doesn't work"
cp file/that/must/exist . #Want to stop if this status is nonzero
La programmation de csh est considérée comme dangereuse. sérieusement. http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ – msw
Je regarde un problème similaire. Il semble que tcsh traite les commandes intégrées (comme cd et limite) différemment des commandes externes (comme false). Les commandes intégrées entraînent toujours la fin du script indépendamment de -e. En outre, "echo last command failed" ne fonctionne pas comme prévu. Avec -e la partie après || n'est jamais appelé. Sans -e la partie après || est appelé comme prévu, mais pour une commande intégrée, vous quitterez le script juste après cela. Yuck! –