如何解决Bash脚本双引号转义
我正在尝试使用变量作为参数在bash脚本中运行命令,但是我无法正确转义引号。 这就是我所拥有的:
vsnames=$(comm -13 --nocheck-order $cur_ha_stat_report $old_ha_stat_report | awk -F\| '{print $1}' | tr '\r\n' ' ')
create event type=0xfff00033 text="$vsnames" mh=$dev_mh &
vsnames是一个字符串,单词之间用空格分隔。 当我运行脚本时,这就是我得到的:
+ vsnames='VS1 VS2 '
+ create event type=0xfff00033 'text=VS1 VS2 ' mh=xxx
如何将$ vsnames变量放在引号之间?
我尝试使用\"
,但没有用,bash只是添加了一堆不需要的单引号。
有小费吗?
我实际需要的命令是:
create event type=0xfff00033 text="VS1 VS2 " mh=xxx
解决方法
将变量vsnames
设置为8个字符的字符串VS1 VS2
(从跟踪中可以看到),进行
create event type=0xfff00033 text=\""$vsnames"\" mh=xxx
将create
命令的argv [2]设置为
text="VS1 VS2 "
说明:我已将$vsnames
括在单引号中,以告诉bash我们不想在此处进行分词。然后,我将其包装在文字\"
引号之间,因为您希望create
看到这些引号。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。