diferentes etapas na programação bash

0

Eu tenho um programa bash com diferentes estágios, como:

$stage=1

if [ stage -le 1]; then echo "execute stage 1" fi
if [ stage -le 2]; then echo "execute stage 2" fi
if [ stage -le 3]; then echo "execute stage 3" fi

meus códigos em estágios são muito computacionalmente caros. O que eu quero é executar os estágios que são necessários.

Como posso chamar o estágio 3 diretamente e pular os estágios 1 e 2 do terminal de comando no linux.

Obrigado

    
por ASAD 15.01.2017 / 18:24

1 resposta

2

Você provavelmente poderia usar uma declaração de caso para essa. Digamos que nós criamos um script chamado stage.sh , então poderia ser algo assim:

#!/bin/bash
case $1 in
        1) echo "stage 1" ;;
        2) echo "stage 2" ;;
        3) echo "stage 3" ;;
        *) echo "unknown stage" ;;
esac

O que ele faz é pegar a primeira entrada ( $1 ) quando chamado pela linha de comando e combiná-lo com a instrução case. Aqui, executar ./stage.sh 1 exibiria stage 1 e ./stage.sh 5 exibiria unknown stage , já que não há correspondência de maiúsculas e minúsculas (portanto, ele recorrerá à opção *) ).

    
por Simon Arons 15.01.2017 / 20:56