116 votes

Un seul script à exécuter à la fois dans Windows batch et Linux Bash ?

Est-il possible d'écrire un seul fichier script qui s'exécute à la fois sous Windows (traité en .bat) et sous Linux (via Bash) ?

Je connais la syntaxe de base des deux, mais je n'ai pas compris. Il pourrait probablement exploiter une syntaxe obscure de Bash ou un bug du processeur batch de Windows.

La commande à exécuter peut être une simple ligne pour exécuter un autre script.

La motivation est de n'avoir qu'une seule commande de démarrage d'application pour Windows et Linux.

Mise à jour : La nécessité de l'interpréteur de commandes "natif" du système script est qu'il doit choisir la bonne version de l'interpréteur, se conformer à certaines variables d'environnement bien connues, etc. L'installation d'environnements supplémentaires comme CygWin n'est pas préférable - j'aimerais conserver le concept "download & run".

Le seul autre langage à envisager pour Windows est Windows Scripting Host - WSH, qui est prédéfini par défaut depuis 98.

-2voto

Jens Points 17702

Au lieu de faire voler un cochon en essayant d'écrire un script dans un sous-ensemble de bash/command.com (ce qui ne vous mènera pas très loin), il est bien meilleur et considérablement moins pénible de utiliser un shell qui est disponible sur les deux systèmes . Il s'agit de bash, dash, ash ou ksh. L'approche la plus simple est probablement d'installer Cygwin sur Windows et d'écrire des scripts fonctionnant à la fois sur Cygwin et Linux.

-6voto

monitor Points 79

Il existe des outils de construction indépendants de la plateforme comme Ant ou Maven avec une syntaxe xml (basée sur Java). Ainsi, vous pourriez réécrire tous vos scripts dans Ant ou Maven et les exécuter malgré le type d'OS. Ou vous pourriez simplement créer un wrapper Ant scripts, qui analysera le type d'OS et exécutera le bat ou bash scripts approprié.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X