Shell 如何使echo命令不跳过双引号

Shell 如何使echo命令不跳过双引号,shell,Shell,我有一个很长的脚本和一行代码,应该是回显主机名的名称(f是我的脚本从另一个文件读取的变量): 我希望输出如下所示: ignore where match("myhostname.com", host.name) ignore where match("myhostname.com", host.name) 但是我的echo脚本跳过了“”,最后我得到了这一行,它缺少了“: 你能帮忙吗 谢谢请尝试转义双引号: $ f="myhostname.com" $ echo " ignore where

我有一个很长的脚本和一行代码,应该是回显主机名的名称(f是我的脚本从另一个文件读取的变量):

我希望输出如下所示:

ignore where match("myhostname.com", host.name)
ignore where match("myhostname.com", host.name)
但是我的echo脚本跳过了“”,最后我得到了这一行,它缺少了“:

你能帮忙吗


谢谢

请尝试转义双引号:

$ f="myhostname.com"
$ echo "  ignore where match(\"$f\", host.name)" 
如果您将返回:

$ f="myhostname.com"
$ echo "  ignore where match(\"$f\", host.name)" 
ignore where match("myhostname.com", host.name)