如何将文件读入 bash 中的变量

问题描述

我想将文件内容存储在 bash shell 变量中。这工作正常:

$ cat hello
Hello,world!
$ F=hello
$ Q=$(cat $F)
$ echo $Q
Hello,world!

但是,如果文件包含星号,则星号将替换为当前目录中所有文件的列表。

如何引用文件名来保护星号?或者以其他方式将文件加载到 shell 变量中?

我知道 this question,但它不适用于包含星号的文件

解决方法

Q 包含星号。 $Q未加引号扩展将 * 替换为文件列表。

$ Q="*"
$ echo $Q
<list of files>
$ echo "$Q"
*

赋值的右侧不受路径名扩展的影响,因此 Q=* 也能正常工作,用于读取文件的命令替换也不受影响。 Q=$(cat hello) 工作正常:您只需要引用 Q 的扩展。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...