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.
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