Bash:读取包含星号(*)的文件

Bash:读取包含星号(*)的文件

我要读取变量中的文件内容。执行以下操作非常好:

content1=$(<content-1.html)

但是,如果该文件包含星号 (*),它就不会正确读取它,而是用工作目录中的文件列表替换它。

因此,如果文件包含以下内容:

var randomFirst = (Math.floor( Math.random() * (items.length) ) );

读完之后,它变成了下面这样:

 var randomFirst = (Math.floor( Math.random() backups compile.sh content css favicon.ico img libs output template.html template_compiled.html (items.length) ) );

我应该如何读取文件以确保特殊字符不被解释?

谢谢,

答案1

简单的答案是使用双引号:-

content1="$(<content-1.html)"
echo "$content1"

双引号允许扩展变量,但不允许扩展文件掩码。引号不会出现在扩展中。因此,引用时始终使用双引号内容1

事实上,第一个语句并不严格需要双引号,因为狂欢不会重新扫描输入行,但它们不会造成任何危害。

因此,您的问题不在于读取文件,而在于如何使用其内容。

相关内容