Como usar o comando source no shell script

1

Eu gostaria de usar o comando source no shell script.

O que eu fiz é assim abaixo,

em start.sh

source ~/tensorflow/bin/activate

depois, na linha de comando, execute este script.

$sh start.sh

No entanto, nada acontece e

$which source
O comando

não mostra nada.

Então, source não é o comando normal ??

Esta ideia é errada? ou como posso reduzir o tipo de caminho ???

    
por whitebear 12.06.2017 / 21:25

3 respostas

2

source é um comando shell embutido . O comando which procura por binários no PATH , como em / usr / bin, / bin, / sbin, etc. mas você não encontrará nenhum comando interno em um binário separado.

Além disso, ter o comando source em um script de shell não resulta na propagação do source até o shell atual quando você o executa. sh blah.sh onde blah.sh tem source na verdade não irá fornecer o conteúdo do arquivo para o seu shell interativo. Não é assim que a terceirização funciona.

Se você quer que esta fonte do script tensorflow activate aconteça toda vez que você abrir um novo shell, você precisa editar o comando ~/.bashrc ou ~ / .profile (or other files, depending on what your shell is and how it's configured) and put the source diretamente aqui.

P.S. - o título da sua pergunta é muito confuso e parece incompleto. Reserve algum tempo para editar, revisar e limpar seu post, ou você corre o risco de alguém fazer downvoting: P Estou tentado a fazer isso sozinho, mas eu escrevi uma resposta, então eu sou um pouco preconceituoso ... / p>     

por 12.06.2017 / 21:28
1

Por favor use o comando:

source start.sh

Eu me deparei com esse problema, quando eu queria evitar escrever:

source ~/.bashrc
source activate tensorflow
jupyter notebook

Depois disso, me deparei com uma página que explica isso melhor: Quais são as diferenças entre a execução de scripts de shell usando" source file.sh "," ./file.sh "," sh file.sh ",". ./file.sh "? em Ask Ubuntu.

    
por 02.04.2018 / 12:05
0

Parece que você deseja ativar um ambiente virtual python no qual instalou o tensorflow. Você pode tentar usar um alias em ~/.bashrc .

Adicionar

alias pytensorflow='source ~/tensorflow/bin/activate'

no final de ~/.bashrc , abaixo da linha

# User specific aliases and functions

Inicie uma sessão bash e você pode simplesmente digitar pytensorflow no prompt de comando para ativar o ambiente virtual. Eu usei com sucesso isso.

    
por 03.11.2018 / 19:21

Tags