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