执行作为消息显示在屏幕上的命令

执行作为消息显示在屏幕上的命令

输入特定命令后,屏幕上会多次显示一条消息。我需要重新输入整个建议的命令或复制并粘贴它。是否有使用终端执行相同操作的快捷方式。

例如

$ 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 )

相关内容