Eu tenho um script que usa sh
shell. Eu recebo um erro na linha que usa o source
comando Parece que source
não está incluído no meu sh
shell.
Se eu tentar explicitamente executar a source
partir do shell, recebo:
sh: 1: source: not found
Devo de alguma forma instalar "fonte"? Eu tenho uma versão errada de sh
?
source
é uma "versão errada".source: not found
significa que osource
comando foi avaliado corretamente, mas o arquivo que ele deveria ter lido não existe.source
porque é um recurso do shell. Não pode ser implementado como um comando externo.Respostas:
/bin/sh
geralmente é outro shell tentando imitar o Shell. Muitas distribuições usam/bin/bash
parash
, ele suportasource
. No Ubuntu, no entanto,/bin/dash
é usado o que não suportasource
. A maioria das conchas usa em.
vez desource
. Se você não pode editar o script, tente alterar o shell que o executa.fonte
/bin/sh
chama/bin/dash
. Tradicionalmente,/bin/sh
chamado/bin/bash
é o modo de compatibilidade sh.SHELL := /bin/bash
ao topo do meu Makefile.No shell Bourne (sh), use o. comando para originar um arquivo
fonte
source
, não é estritamentesh
.. ./filename
. Caso contrário, eu receberia umsh: 1: .: filename: not found
erro ao executar testes no Travis-CI.Então vai ficar tudo bem
fonte
dpkg-reconfigure
pode não estar acessível a todos os usuários, especialmente em sistemas que não são baseados no Debiansource: not found
erros com clientes antigos de telnet após a atualização do debian, obrigado.O
source
embutido é um basismo. Escreva isso simplesmente como.
alternativa.por exemplo
fonte
Esse problema ocorre porque o jenkins Execute Shell executa o script por meio de seu / bin / sh
Conseqüentemente, / bin / sh não conhece "origem"
Você só precisa adicionar a linha abaixo na parte superior do Execute Shell em jenkins
fonte
O
source
comando está incorporado em algumas conchas. Se você tiver um script, ele deve especificar qual shell usar na primeira linha, como:fonte
Eu enfrentei esse erro enquanto tentava chamar o comando source do #Jenkins execute shell.
source profile.txt
ousource profile.properties
A substituição do comando de origem é usar,
. ./profile.txt
ou. ./profile.properties
Nota: Há um espaço entre os dois pontos (.)
fonte
Encontrei em um Makefile gnu no Ubuntu, (onde / bin / sh -> bash)
Eu precisava usar o. comando, bem como especificar o script de destino com um prefixo ./ (veja o exemplo abaixo)
source não funcionou nesse caso, não sei por que, uma vez que deveria estar chamando / bin / bash ..
Minha variável de ambiente SHELL também está definida como / bin / bash
Observe que este exemplo não inclui o caractere de tabulação; teve que formatar para troca de pilha.
fonte
source é um comando interno do bash. Para executar o comando source, você pode efetuar login como Root.
sudo -s source ./filename.sh
fonte
No Ubuntu, em vez de usar sh scriptname.sh para executar o arquivo, usei. scriptname.sh e funcionou! A primeira linha do meu arquivo contém:
#!/bin/bash
use este comando para executar o script
fonte
Isso pode ajudá-lo, eu estava recebendo este erro porque estava tentando recarregar o meu
.profile
com o comando. .profile
e houve um erro de sintaxefonte
O shell Bourne (sh) usa PATH para localizar
source <file>
. Se o arquivo que você está tentando fonte não estiver no seu caminho, você receberá o erro 'arquivo não encontrado'.Experimentar:
fonte
sh: 1: source: not found
não dizfile not found