如何在一种特定情况下在末尾回显空格而不使用多余的引号?

如何在一种特定情况下在末尾回显空格而不使用多余的引号?

考虑以下 bash 脚本:

~$ x="echo -n abc "

~$ $x && echo xyz
abcxyz

~$

出于好奇(请纵容我),我想要一个包含echo -n输出某些内容的命令的 bash 变量。我想知道是否可以以保留尾随空格的方式定义它。

一个明显的选择是使用引号:

~$ x="echo -n \"abc \""

~$ $x && echo xyz
"abc "xyz

~$

但这些引号会污染输出。

当然,我可以在第二个 echo 命令前面添加空格:

~$ x="echo -n abc "

~$ $x && echo " xyz"
abc xyz

~$

但问题的目的是了解是否可以用尾随空格表示输出中没有多余引号x的方式进行更改。$xecho -n

非常感谢。

答案1

这正遭受着我试图将命令放入变量中,但复杂的情况总是失败!

解决方案是使用数组:

$ x=(echo -n "abc ")
$ "${x[@]}" && echo xyz
abc xyz

相关内容