J'utilise depuis tcsh
longtemps maintenant. Mais chaque fois que je recherche quelque chose, je trouve souvent que les méthodes spécifiées sont bash
spécifiques. Même la syntaxe des scripts shell est différente pour les deux.
D'après ce que j'ai expérimenté en recherchant et en apprenant sur Internet, bash
semble être le shell le plus couramment utilisé. Même le nombre de questions sur ce site balisé bash
est bien plus (cinq fois plus actuellement) que le nombre de questions balisées tcsh
.
Donc, je me demande si je devrais passer à bash. Qu'est-ce que tu penses?
Pourquoi devrais-je m'en tenir à tcsh
OU pourquoi devrais-je passer à bash
?
zsh
(vers lequel OS X aurait dû basculer)dash
ceux qui devraient fonctionner à peu près n'importe quoi.zsh
. En même temps, ce n'est pas amusant car cela ne répond pas vraiment à la question des opérations. c'est pourquoi j'ai fait de ma réponse zsh un commentaire et non une réponse. Mais, à moins que vous ne rencontriez des problèmes pour apprendre à décortiquer le script tcsh, allez avec ce que vous savez. Si vous rencontrez des problèmes lors de l'utilisation,tcsh
postez votre problème ici. Ne changez pas juste parce que . Il y a plus de messages bash car il est installé par défaut dans plus d'endroits, cela ne fait pas mieux.Réponses:
Après avoir appris bash, je trouve que tcsh est un peu en arrière. Par exemple, ce que je pourrais facilement faire en bash, j'ai du mal à le faire en tcsh. Ma question sur tcsh . Le support et la documentation Internet sont également bien meilleurs pour bash et très limités pour tcsh. Le nombre de livres O'Reilly sur bash est grand mais je n'ai rien trouvé de semblable pour tcsh.
la source
En fait, vous devriez passer à
zsh
! Il est essentiellement rétrocompatible et il a toute l'utilitébash
avec une grande aide impressionnante . Il y a même un livre (même si je n'ai pas réussi à le lire).J'admettrai une raison de ne pas utiliser
zsh
plus,bash
mais à moins que vous ne travailliez constamment sur plusieurs nouvelles installations, cela ne s'applique pas vraiment. Surtout si vous connaissez les différences les plus importantes . Cependant, cela ressemble vraiment aux différences entrevim
etvi
; vous ne voulez pas être naïf mais pratiquement ce n'est pas grave. Même lesvim
utilisateurs inconditionnels peuvent trouver leur cheminemacs
et vice-versa.la source
Vous devez passer à un shell compatible POSIX http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html , comme l'un de bash, ksh, dash, mais pas zsh et certainement pas tcsh. Cela fait longtemps que csh n'a pas été déclaré un mauvais choix pour les scripts: http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ , tcsh n'est pas très différent dans ce domaine.
Lors de l'écriture de scripts, assurez-vous d'utiliser uniquement des constructions POSIX (c'est-à-dire éviter les bashismes et autres) si vous ne voulez pas être à nouveau verrouillé dans quelque chose de non portable.
la source
Je pense que la compatibilité obsédée manque. Si vous essayez de rendre tout compatible en mettant
#!/bin/sh
en haut et en utilisant les extensions .sh , mais que vous ne testez jamais rien d'autre que bash , vous n'avez pas garanti un script compatible! Mieux vaut simplement utiliser#!/bin/bash
et .bash pour que les utilisateurs connaissent réellement la vraie exigence.Si vous connaissez zsh , tcsh ou quelque chose de mieux que bash et que vous avez un bon manuel de référence, ne vous retenez pas . Tout comme les gens s'attendent à installer perl ou python pour pouvoir exécuter certains scripts, ils peuvent également gérer l'installation de votre shell obscur! :RÉ
la source
/bin/sh
garanti de pointer vers un shell compatible korn alors que tcsh est un shell dérivé de csh. Il est probable qu'il/bin/sh
pointe déjà vers bash ou un autre shell compatible et il est presque certain qu'il ne sera pas affecté par le changement de shell utilisateur . csh et sh sont totalement incompatibles.dash
(Debian'sash
et Bourne compatible shell).#!/bin/sh
seul-ne
POSIX. Cependant, être préoccupé par la compatibilité POSIX ne devrait pas être le type de considération étiqueté «obsédé». Invoquer lesh
tableau de bord par défaut avec debian / ubuntu, et ce depuis un certain temps maintenant. Je sais que cela ne serait pas qualifié de «garanti», mais je considérerais rarement la portabilité comme «garantie». Je serais encore plus réservé avec un «script shell».Quelle coquille? Optez pour celui qui présente le meilleur rapport "facilité d'utilisation" vs "tracas" ...
Si vous ne trouvez pas suffisamment d'exemples généraux et d'explications pour votre coque "Maserati", alors ses performances supplémentaires peuvent être plus un problème qu'un bonus ...
J'ai trouvé cet article / site intéressant; ça vaut peut-être la peine d'être lu:
les différences de shell UNIX et comment changer votre shell
la source
zsh a probablement quelques similitudes de plus avec tcsh que bash.
Voir: http://zsh.sourceforge.net/FAQ/zshfaq02.html#l13
Les gens prétendent souvent que zsh peut faire des choses que bash ne peut pas, mais je n'ai pas trouvé que c'était le cas. Ce que j'ai vu est que pour zsh il est plus facile, construit ou activé par défaut, alors que dans bash est un script addon, doit être activée, ou est plus difficile.
(Avertissement: je suis un utilisateur bash qui a parfois envisagé de passer à zsh)
la source
Pour certaines raisons, j'ai utilisé tcsh, comme je l'ai utilisé il y a 20 ans. Comme je sais, bash est originaire de sh mais bien sûr avec beaucoup de choses csh mais tcsh est originaire de csh. J'aime vraiment l'achèvement de la commande au début, mais il est maintenant disponible dans la plupart des shells. Pour les scripts, faut-il s'en tenir à / bin / sh?
la source