画面にメッセージとして表示されたコマンドを実行します。

画面にメッセージとして表示されたコマンドを実行します。

特定のコマンドを入力すると、画面に複数のメッセージが表示されます。提案されたコマンド全体を再入力またはコピーして貼り付ける必要があります。端末を使って同じことをするショートカットはありますか?

例えば

$ vagrant up

メッセージは次のとおりです。

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

このコマンドを実行したいですvagrant plugin install vagrant-vbguest

答え1

インストールコマンドがバックティックとして引用され、行が公開された改行文字で区切られている場合。

一例:

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 )

または

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

それから:

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

また、メッセージがSTDERRに印刷された場合は、次のように置き換えてください。

status=$( vagrant up 2>&1 )

関連情報