为什么 Cat 在命令替换中引用单个单词

为什么 Cat 在命令替换中引用单个单词

全部,

我正在尝试使用命令替换将命令行参数保存在文件中。我最初的想法是简单地将命令行参数放在文件中的一行中,然后调用我的命令,command $( cat [arguments-file] ) other arguments 但是,这似乎对我来说并不正确。

我开始进行一些调试,打开 bash 调试set -x,命令的结果是

command $( /tmp/arg-file ) File.xml
+ command -m '"Manhattan' Item 'MockService"' -P 'Hellp=Value' File.xml

我的参数文件的内容是

-m "Manhattan Item MockService" -P Hellp=Value

有人能解释为什么在命令替换期间添加单引号吗?

答案1

不是。单引号仅通过 可见,set -x以便向读者消除单词歧义。但是,像这样存储命令参数充其量是有问题的。考虑每行存储一个参数,然后使用read数组生成命令行。

相关内容