Eu tenho usado tcsh
por um longo tempo agora. Mas sempre que procuro algo, geralmente descubro que os métodos especificados são bash
específicos. Até a sintaxe dos scripts de shell é diferente para os dois.
Pelo que experimentei pesquisar e aprender na internet, bash
parece ser o shell mais comum usado. Até o número de perguntas marcadas neste site bash
é muito mais (cinco vezes mais atual) do que o número de perguntas marcadas tcsh
.
Então, eu estou querendo saber se devo mudar para o bash. O que você acha?
Por que devo me ater a tcsh
OU por que devo passar para bash
?
zsh
(que OS X devem ter mudado para)dash
aqueles que devem funcionar em praticamente qualquer coisa.zsh
. Ao mesmo tempo, não é divertido porque realmente não responde à pergunta das operações. foi por isso que fiz da minha resposta zsh um comentário, não uma resposta. No entanto, a menos que você esteja tendo problemas para aprender a shell script tcsh, siga o que sabe. Se você tiver problemas para usar,tcsh
poste seu problema aqui. Não mude apenas porque . Existem mais postagens do bash porque são instaladas por padrão em mais locais, o que não a torna melhor.Respostas:
Depois de aprender o bash, acho que o tcsh é um passo atrás. Por exemplo, o que eu poderia fazer facilmente no bash, acho difícil fazer no tcsh. Minha pergunta sobre o tcsh . O suporte e a documentação da Internet também são muito melhores para o bash e muito limitados para o tcsh. O número de livros da O'Reilly no bash é grande, mas não encontrei nada semelhante para o tcsh.
fonte
Na verdade, você deve passar para
zsh
! É essencialmente compatível com versões anteriores e tem toda a utilidade debash
uma grande e enorme ajuda de grandiosidade . Existe até um livro (embora eu não tenha conseguido ler).Admito que, por um motivo, não
zsh
exagere,bash
mas a menos que você esteja constantemente trabalhando em várias novas instalações, isso não se aplica. Especialmente se você sabe sobre as mais significativas diferenças . No entanto, isso é realmente semelhante às diferenças entrevim
evi
; você não quer ser ingênuo, mas praticamente não é grande coisa. Até osvim
usuários mais experientes podem se orientaremacs
e vice-versa.fonte
Você deve mudar para um shell compatível com POSIX http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html , como um dos bash, ksh, dash, mas não o zsh e certamente não o tcsh. Faz muito tempo que o csh foi declarado uma má opção para scripts: http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ , o tcsh não é muito diferente nessa área.
Ao escrever scripts, certifique-se de usar apenas construções POSIX (por exemplo, evitar basismos e afins) se você não quiser ser bloqueado novamente em algo não portátil.
fonte
A compatibilidade obcecada está faltando, eu acho. Se você tentar tornar tudo compatível colocando
#!/bin/sh
no topo e usando extensões .sh , mas nunca teste em nada além do bash , não garantiu um script compatível! É melhor apenas usar#!/bin/bash
e .bash para que os usuários realmente saibam o requisito real.Se você conhece zsh , tcsh ou algo melhor que o bash , e tem um bom manual de referência, não se contenha . Assim como as pessoas esperam instalar o perl ou python para poder executar alguns scripts, elas também podem lidar com a instalação do seu shell obscuro! : D
fonte
/bin/sh
garantido que aponte para um shell compatível com o korn, enquanto o tcsh é um shell derivado do csh. É provável que/bin/sh
já aponte para o bash ou outro shell compatível e é quase certo que não será afetado pela alteração do shell do usuário . csh e sh são completamente incompatíveis.dash
(ash
shell compatível com Debian e Bourne).#!/bin/sh
sozinho-ne
. No entanto, preocupar-se com a compatibilidade do POSIX não deve ser o tipo de consideração rotulada como 'obcecada'. A chamada desh
padrões traça com o debian / ubuntu, e já faz um tempo. Eu sei que isso não se qualificaria como 'garantido', mas raramente consideraria algo portável 'garantido'. Eu ficaria ainda mais reservado com um 'shell script'.Qual shell? Escolha aquele com a melhor relação "facilidade de uso" vs "aborrecimentos" ...
Se você não encontrar exemplos e explicações gerais suficientes para o seu shell "Maserati", seu desempenho extra pode ser mais um problema do que um bônus ...
Achei este artigo / site interessante; pode valer a pena ler:
diferenças de shell do UNIX e como mudar seu shell
fonte
O zsh provavelmente tem mais algumas semelhanças com o tcsh do que o bash.
Vejo: http://zsh.sourceforge.net/FAQ/zshfaq02.html#l13
As pessoas costumam afirmar que o zsh pode fazer coisas que o bash não pode, mas não achei que fosse esse o caso. O que eu tenho visto é que, para zsh é mais fácil, construído em ou ativado por padrão, enquanto que em bash é um script addon, tem de ser ligado, ou é mais difícil.
(aviso: sou um usuário do bash que às vezes considerou mudar para o zsh)
fonte
Por alguns tipos de razões, eu costumava usar o tcsh, como o usei há 20 anos. Como eu sei, o bash é originário do sh, mas é claro, com muitas coisas do csh, mas o tcsh é originário do csh. Eu realmente gosto da conclusão do comando nos primeiros dias, mas ela está disponível na maioria dos shells agora. Para scripts, devemos nos ater ao / bin / sh?
fonte