当前位置:  开发笔记 > 编程语言 > 正文

以bash字符串转义引号和管道

如何解决《以bash字符串转义引号和管道》经验,为你挑选了1个好方法。



1> chepner..:

你没有; 您需要使用eval在常规字符串参数中嵌入任意管道.

MYCMD="VBoxManage showvminfo --machinereadable \"$1\" | grep 'VMState=\"poweroff\"'"
eval "$MYCMD"

但是,除非您确定$1不会导致问题,否则不建议这样做.(如果您需要解释这些风险可能是什么,那么您不应该使用eval.)

相反,定义一个shell函数:

mycmd () {
    VBoxManage showvminfo --machinereadable "$1" | grep 'VMState="poweroff"'
}

mycmd "$1"

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有