Ignora as primeiras x linhas ao executar um script?

2

Eu estou fazendo um script que eventualmente recomeça, executando-se novamente usando exec . O problema é que as primeiras linhas só devem ser executadas toda vez que você iniciar o script, por isso estou pensando se há alguma coisa que eu possa fazer para corrigir isso. Aqui está um exemplo:

echo "welcome"
read yesno

if [[ $something = etc.. ]]; then
whatever
fi

exec ~/bin/script

Isso é simplificado, mas este era o meu script que eu gostaria de ignorar a primeira linha, ( echo ). Existe alguma opção para exec eu posso adicionar? Quer dizer, eu poderia fazer uma cópia do roteiro e apenas omitir a (s) primeira (s) linha (s), mas parece uma solução ruim.

    
por DisplayName 04.11.2015 / 03:11

2 respostas

2

Com uma variável, a coisa óbvia a fazer é passar o resultado do aviso anterior:

if [[ -z "$yesno" ]]; then
    echo "welcome"
    read yesno
fi

if [[ $something = etc.. ]]; then
whatever
fi

# doing it this way makes it exported into the subprocess
yesno=$yesno exec ~/bin/script
    
por 04.11.2015 / 03:21
-1

Você pode tentar colocar um arquivo temporário em / run, verificar no início, se existir. Se não, você pode ecoar, se existir, você o executou antes. E quando terminar, remova esse arquivo.

    
por 04.11.2015 / 03:17