Como chamar script que está tendo menus, de outro script

0

Eu tenho um script chamado operation.sh e enquanto eu estiver executando o script, ele terá a saída abaixo e aguardará a entrada do usuário.

 1. Start
 2. Restart
 3. Stop
 4. Status
 Enter Option: 

Uma vez que eu pressionei "1", ele executará alguma lógica e novamente ele ficará acima da vista.

Eu preciso chamar o operation.sh de outro sh (ou seja, outro.sh) como,

 sh other.sh

Ele precisa executar a mesma lógica de quando eu pressionei 1 em operation.sh.

other.sh está abaixo do conteúdo.

sh operation.sh 1

Eu poderia entender, não faz sentido (mas eu tentei desde que eu não tenho idéia).

Como posso chamar um script de menu (que está executando uma ação baseada no menu selecionado pelo usuário) de outro script.

    
por Spike 15.07.2016 / 16:42

2 respostas

0

#!/bin/sh 

OPC1() {
echo "Opcion 1"
}

OPC2() {
echo "Opcion 2"
}

SELECCIONA() {
if ( test $opc -eq 1 )
then
     OPC1
else
     OPC2
fi
}

#### MAIN ##########

opc=$1

if [ $1 ]
then
    SELECCIONA
else
    echo "1. start "
    echo "2. stop "
    echo "0. salir "
    read opc
    SELECCIONA
fi
    
por 15.07.2016 / 21:47
0

Tente usar echo -e "1\n2" canalizado para o script. Basta colocar as respostas do menu separadas por novas linhas ( \n ) na string após -e .

echo -e "1\n2" | operation.sh

Outra opção é colocar as respostas na ordem uma por linha em um arquivo de texto. Você pode então catar esse arquivo e canalizá-lo para o script.

cat responses.txt | operation.sh
    
por 21.07.2016 / 01:03