Como Stéphane Chazelas observou no comentários , csh
e% relacionadostcsh
não possuem funções, portanto você não pode criar o arquivo de funções que você possui.
No entanto, shells semelhantes a bourne geralmente compartilham sintaxe e funcionalidade, e de fato bash
emprestou muita funcionalidade de ksh
, mas alguns dos recursos desses shells não são compatíveis com dash
- um padrão shell no Ubuntu e mais próximo no comportamento do shell Bourne original.
Outra questão que surge não é apenas sobre funções, mas comandos que as funções podem chamar. Se você estiver usando essas funções no Ubuntu e, de repente, for ao FreeBSD, descobrirá rapidamente que utilitários como find
ou ps
geralmente têm opções que se comportam de maneira diferente ou ausente.
Portanto, para ter certeza de que você pode usar funções, eu sugiro duas coisas: considere comandos e portabilidade de suas opções e duas funções de gravação que se ajustem ao POSIX padrão e à sintaxe original do shell Bourne o mais próximo possível.
Como alternativa, se você tiver o luxo de sempre instalar o shell que deseja (o que pode não acontecer se você não tiver sudo
privileges no sistema em que está trabalhando), escreva suas funções na sintaxe de um shell específico. .
Veja Quando é importante escrever scripts portáteis? para informações adicionais.