Qual é a diferença entre o fornecimento e a execução de um script de shell
Para entender a diferença entre as duas maneiras pelas quais se deve primeiro ter um bom conhecimento para usar os dois métodos, então primeiro vamos ter sua definição básica um por um:
Adquirindo um script de shell
O fornecimento de um script de shell é uma maneira de executar um script no ambiente de shell atual. Todos os comandos de um script são executados se forem digitados diretamente na interface da linha de comando e o fornecimento de um script faz a mesma coisa. Por isso, oferece uma opção para o script para modificar as variáveis de ambiente e definir opções de shell no shell atual.
Para uma ilustração adicional, fiz um arquivo de teste para o script bash e o executei, aqui está o código do arquivo Bash que eu criei:
# BashFile.sh
exportar my_info = "hello linuxhint"
Aqui eu criei uma variável ambiental que é my_info que tem Olá Linuxhint armazenado nele e depois executado usando a sintaxe dada:
.
Desde que eu criei um arquivo chamado Bashfile.SH Então eu usei a sintaxe acima assim:
. Bashfile.sh
Depois que o arquivo é executado, liguei para a variável ambiental para ver o que é armazenado e ele retorna o valor armazenado nele, o que mostra claramente que as mudanças nas variáveis do ambiente persistem no shell atual:
Executando um script de shell
Executar um script de shell é uma maneira de executar um script em uma concha separada. Quando um script é executado, um novo shell é criado, o script é executado nessa concha e o shell termina quando o script é concluído. Isso mostra que quaisquer alterações feitas nas variáveis do ambiente ou opções de shell no script não persistirão depois que o script terminar. Para uma ilustração adicional, fiz um arquivo de teste para o script bash e o executei, aqui está o código do arquivo Bash que eu criei:
# BashFile.sh
exportar my_info = "hello linuxhint"
Aqui acabei de criar uma variável ambiental que é my_info que tem Olá Linuxhint armazenado nele e depois executado usando a sintaxe dada:
./
Desde que eu criei um arquivo chamado Bashfile.SH Então eu usei a sintaxe acima assim:
./BashFile.sh
Depois que o arquivo é executado, chamei a variável de ambiente para ver o que é armazenado e retorna um espaço em branco que mostra claramente que as alterações feitas nas variáveis do ambiente ou nas opções de shell no script não persistirão após o término do script:
Para ilustrar ainda mais a diferença, a tabela dada abaixo que identifica algumas das principais diferenças entre o fornecimento e a execução de um arquivo:
Fatores | Executando um script de shell | Adquirindo um script de shell |
Aliases e funções | Aliases e funções só persistem na concha do script. | Aliases e funções persistem na concha atual. |
Ambiente | Alterações nas variáveis de ambiente só persistem na concha do script. | Alterações nas variáveis de ambiente persistem no shell atual. |
Sintaxe | ./nome de script.nome de script sh ou bash.sh | . nome de script.nome de script sh ou fonte.sh |
Principal utilidade | Execute um script independente sem afetar a concha atual. | Configure as variáveis ou aliases do ambiente para a concha |
Conclusão
Existem duas maneiras de executar o script de bash, é adquirindo -o e o outro é executando -o, as duas maneiras têm seu próprio significado. A principal diferença entre os dois é que o fornecimento do arquivo de script mantém as alterações nas variáveis do ambiente no shell atual, enquanto a execução do script manterá as alterações.a