Question

Je sais que cette question a commencé un genre-guerres « religieuses » dans le passé et il pourrait ne pas être une réponse correcte. Mais après avoir travaillé avec ksh et csh pour 3-4 dernières années et passer par la douleur de portage d'un à l'autre ou l'application d'un morceau commun de la logique à plusieurs versions (lire comme code existant), si je suis en train d'écrire un nouveau script, je opteraient pour ksh, mais hors de la contrainte plutôt que par choix. Y at-il une meilleure option autre que ksh / csh? Aussi quelque chose qui est portable sur unix (Solaris / HP / IBM / FreeBSD) et Linux (et si je ne demande pas trop ou si est logique toutes les saveurs de Linux)

En attente de suggestions ...

Paix :) Devang Kamdar

Était-ce utile?

La solution

Je suggère simplement vieux sh, qui est disponible partout.

En outre, il convient de noter que la portabilité implique non seulement shell, mais aussi d'autres commandes utilisées dans un script, comme awk, grep, ps ou echo.

Autres conseils

Si vous voulez vraiment être portable (je ne sais pas que tout script shell est maintenable), je préciserais # / bin / sh et test avec tableau de bord et si possible d'autres coquilles.

Je pense BASH être la coquille de diffusion plus large au moment car il est la valeur par défaut pour de nombreuses distributions Linux (il peut même fonctionner sur Windows avec Cygwin, mais c'est probablement vrai pour les autres coquilles, aussi). Une alternative pourrait être de ne pas utiliser le shell lui-même pour les scripts, mais l'une des langues scriping comme il perl, python, ruby, ...

J'utilise habituellement ksh. Je trouve qu'il est un bon compromis entre les caractéristiques et la portabilité. Il est là (ou une version compatible est disponible) sur la plupart des systèmes Linux et Solaris. Il est un moment que je HP-UX (heureusement) mais je suis sûr qu'il était également disponible.

Si toutes les machines dont vous avez besoin pour soutenir sont modernes, bash pourrait être une option. Solaris 10 est livré avec une copie. Il est la valeur par défaut sur la plupart des machines Linux.

Votre plus petit dénominateur commun va être Bourne (sh), de sorte qu'il vaut la peine d'examiner si la portabilité est votre principale préoccupation. Il manque quelques-unes des caractéristiques les plus sympathiques de ksh et bash bien.

Il est toujours utile de direction claire de csh / tcsh pour les scripts. Csh Programmation est Considered Harmful un oldie, mais encore largement pertinent .

Ma réponse serait perl.

Est-ce que tout 'sh' 'bash' etc peut faire d'une manière plus agréable plus élégante.

En outre, il est en fait plus portable. Une version donnée perl est très cohérente accross toutes les plateformes. Il n'y a pas de différence significative entre les distributions Linux, Solaris et AIX alors que le portage des scripts shell entre ces plates-formes est une vraie douleur.

Et cela fonctionne sur toutes les fenêtres paltforms! Pourvu que vous et éviter les apostrophes inverses "system ()" votre script a une bonne chance de courir.

Python! Consultez ipython, qui est un interpréteur Python amélioré. Aussi:. Python pour Unix et Linux système Adminitration

Vous pouvez écrire des scripts portables grand, et il est amusant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top