Posso executar um comando do Linux no shell script?

2

Posso executar um comando linux no meu script de shell bash? Por exemplo, como posso executar o ifconfig no shell script? Quando executo o shell, a saída do ifconfig deve vir no terminal. Existe alguma possibilidade? Agradecemos antecipadamente.

    
por varza 03.06.2016 / 06:05

2 respostas

1

Esse talvez seja o coração do problema:

A principal coisa a lembrar é que (como aproximação vulgar) o "prompt" onde você executa seus comandos é um shell. Quando você executa um script nesse prompt, ele é executado como um subprocesso do shell. O shell se torna o processo pai.

Ou, para citar Mendel Cooper no Advanced Bash Scripting Guide:

A subshell is a separate instance of the command processor -- the shell that gives you the prompt at the console or in an xterm window. Just as your commands are interpreted at the command-line prompt, similarly does a script batch-process a list of commands. Each shell script running is, in effect, a subprocess (child process) of the parent shell.

link

Esse guia tem excelentes informações relativas à sua pergunta.

O que isso significa?

Um dos problemas mais comuns ao transferir uma linha de comando para um formato de script é que, quando é um script executado como parte de um comando maior, o script deve RETURN o valor para o processo pai (o shell) . Se isso não acontecer, o script é executado silenciosamente e é como se não estivesse no comando shell.

Muitas vezes, esse tipo de problema pode ser resolvido fazendo-se eco de um valor ou retornando um valor. Às vezes, os valores são exportados para variáveis globais e você pode fazer o seu próprio. Isso não parece um caso para variáveis globais, mas apenas para dar alguns exemplos.

Responderei suas perguntas diretamente da melhor maneira possível com as informações apresentadas.

Q. Posso executar um comando linux no meu script de shell bash?

Sim.

Q. por exemplo, como posso executar o ifconfig no shell script?

Aqui está um exemplo (supondo BASH):

cat NEW_NIC
    #!/bin/bash
    my_new_nic=enp101
    echo my_new_nic 

chmod 744 NEW_NIC
ifcfg NEW_NIC

Q. Quando executo o shell, a saída do ifconfig deve vir no terminal.

Aqui está um exemplo (supondo BASH):

cat SHOW_IF
    #!/bin/bash
    ifcfg  

chmod 744 SHOW_IF
SHOW_IF

Mais detalhes sobre o script permitiriam uma resposta melhor.

    
por 03.06.2016 / 11:26
0

Sim, você pode executar qualquer comando básico e complexo no shell ou no terminal.

Caso você esteja confuso, lembre-se: terminal = ambiente de entrada / saída de texto e shell = interpretador de linha de comando

Você pode consultar o link abaixo se precisar de mais explicações. link

    
por 03.06.2016 / 07:02