当我用 打印出一个文件的内容时echo $(cat /path/to/filename),它也会列出我的文件和方向。但是当我使用printf "$(cat /path/to/filename)\n"它时效果很好。
我也尝试将它保存到一个变量中content='cat /path/to/filename'(也content=$(cat /path/to/filename),然后打印 by echo $content,但我得到了相同的结果(列出文件和方向)。
我想将文件的内容存储到变量中,并将变量作为下一个命令的输入传递到我的脚本中。
请注意,我的文件的内容中有特殊字符*。
因为在执行命令替换后,如果您不引用它们,shell 会对结果执行分词(或字段拆分)。
POSIX 将词扩展定义为:
单词扩展顺序如下:
波浪号扩展(参见波浪号扩展)、参数扩展(参见参数扩展)、命令替换(参见命令替换)和算术扩展(参见算术扩展)应从头到尾执行。请参阅令牌识别中的第 5 项。
字段拆分(参见字段拆分)应在步骤 1 生成的字段部分上执行,除非 IFS 为 null。
除非 set -f 有效,否则应执行路径名扩展(请参阅路径名扩展)。
报价删除(参见报价删除)应始终最后执行。
在您的情况下,*匹配当前工作目录中的所有内容。您必须引用结果以获得预期的输出:
echo "$(cat /path/to/fileName)"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8979 次 |
| 最近记录: |