如何在 Bash 中将 shell 变量替换为屏幕的 "stuff" 命令?



我有脚本需要恢复Virtualbox机器,并希望使用机器名称作为变量,所以我有:

VMN="VMtest"
screen -S MyScr -p 3 -X stuff $'VBoxManage controlvm "${VMN}" resume --type headlessn'

但是变量在这个命令中不可见。所以我只看到下面的命令在屏幕窗口

[me@srv ~]$ VBoxManage controlvm resume --type headless

所以我不确定变量是否需要首先在该屏幕中定义,或者如何在单引号中携带它。

屏幕的stuff可以理解n,因此您可以对命令使用双引号:

VMN="VMtest"
screen -S MyScr -p 3 -X stuff "VBoxManage controlvm $VMN resume --type headlessn"

# CTRL-J
... stuff "VBoxManage controlvm $VMN resume --type headless^J"
# ooo (octal)
... stuff "VBoxManage controlvm $VMN resume --type headless12"

$' .... '内部没有参数展开,但是您总是可以将这些部分串成一个字符串:

"VBoxManage controlvm ${VMN} resume --type headless"$'n'

相关内容

  • 没有找到相关文章

最新更新