Execute o comando que foi exibido na tela como uma mensagem

2

Uma mensagem é exibida várias vezes na tela após a digitação de determinado comando. Preciso redigitar todo o comando sugerido ou copiá-lo e colá-lo. Existe um atalho para fazer o mesmo usando o terminal.

Por exemplo,

$ vagrant up

A mensagem foi:

Message: Please install the vagrant-vbguest plugin by 
running 'vagrant plugin install vagrant-vbguest'

Desejo executar o comando vagrant plugin install vagrant-vbguest .

    
por Sudip Kafle 28.11.2014 / 04:51

1 resposta

0

Se o comando de instalação é citado por backticks, e a linha é dividida por nova linha como postada.

Um exemplo:

msg='Message: Please install the vagrant-vbguest plugin by\nrunning 'vagrant plugin install vagrant-vbguest''


status=$( vagrant up )
cmd=$( echo "$status" | grep -o "by\nrunning \'[a-z \-]*" | cut -d"\'" -f 2 )

OR

cmd=$( echo "$msg" | cut -d"\'" -f 2 )

E então:

# if cmd is not empty
if [[ -n "$cmd" ]]; then
    sudo "$cmd"
fi

Além disso, se a mensagem for impressa em STDERR, substitua por:

status=$( vagrant up 2>&1 )
    
por 28.11.2014 / 05:10

Tags