我要读取变量中的文件内容。执行以下操作非常好:
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。
事实上,第一个语句并不严格需要双引号,因为狂欢不会重新扫描输入行,但它们不会造成任何危害。
因此,您的问题不在于读取文件,而在于如何使用其内容。