
Minha equipe compartilha um script de shell, quero torná-lo compatível com o Cygwin porque só eu estou no Windows. Agora o problema vem de source
. Meu shell só aceita formatos como:
source ./<file name>
em vez de
source <file name>
que já está no script. Então eu quero substituir source
como:
source(){ . ./$@; }
Mas agora meu shell reclama que:
`source': is a special builtin
O que devo fazer agora?
Responder1
A partir daquela mensagem de erro sobre um builtin especial (vejahttp://sources.debian.net/src/bash/4.4-4/execute_cmd.c/?hl=5623#L5623), parece que você está executando o bash no modo POSIX. Isso pode ocorrer porque você configurou $POSIXLY_CORRECT
, 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
) é fazer source
(e .
) não pesquisar o diretório de trabalho atual se $PATH
-lookup falhar.
Isso não tem nada a ver com a execução no Cygwin.