Como sobrescrever a fonte no script de shell do Linux?

1

Minha equipe compartilha um script de shell, quero torná-lo compatível com o Cygwin porque somente eu está no Windows. Agora o problema vem de source . Meu shell só aceita formato como:

source ./<file name>

em vez de

source <file name>

que já está no script. Então, quero substituir source como:

source(){ . ./$@; }

Mas agora meu shell reclama que:

'source': is a special builtin

O que devo fazer por agora?

    
por Elderry 06.04.2017 / 15:47

1 resposta

1

A partir dessa mensagem de erro sobre um anúncio especial (consulte link ), parece que você está correndo bash no modo POSIX. Isso pode ter ocorrido porque você tem $POSIXLY_CORRECT set, executou o shell com --posix , usou set -o posix , etc.

Uma das muitas coisas que o modo POSIX faz (além de não permitir que você substitua source ) faça source (e . ) não procurar o diretório de trabalho atual se $PATH -lookup falhar.

Isso não tem nada a ver com a execução no Cygwin.

    
por 06.04.2017 / 19:08